ehcache 를 사용하여 Bucket Sort Algorithm 을 사용하려 한다.
Refil
기본적으로 gready 는 정해진 시간 마다 지속적으로 리필을 해주는 형식이다. 반면에 intervally 는 한번에 리필을 해준다.
1 | |
Bandwidth
버킷의 총량을 설정해 준다. simple 의 경우 greedy 를 사용하게 구현되어있다. classic 의 경우 Refill 의 구현체를 직접 사용한다.
1 | |
Bucket
컨트롤 하기 위해 사용할 객체이다.
1 | |
Example
ip 접근 제어의 경우 nginx 에서 설정을 제공하기도 하지만 spring 내에서 특정 API 접근에 대해서 처리하려고 한다.
아래의 라이브러리들을 추가해준다.
For java 11+
1 | |
CacheManager 를 생성한다.
1 | |
interceptor 를 생성한다.
1 | |
인터셉터에 등록을 해주면 /api 로 접근하는 모든 요청에 대해 bucket 로직이 실행 된다.
1 | |