로딩
요청 처리 중입니다...

[자바] java 서비스 가용성 확보에 필요한 Rate Limiting Algorithm에 대해

 [자바] java 서비스 가용성 확보에 필요한 Rate Limiting Algorithm에 대해

서비스를 운영하다보면 의도적이든 의도적이지 않던간에 서비스의 가용성(API레벨, 네트워크 레벨, 컨테이너 레벨, CPU 레벨이든)을 유지하기 위해서 클라이언트의 과도한 사용에 대해 스스로를 보호해야 합니다. 간과하기 쉽지만, 서비스의 가용성을 유지하기 위한 노력은 클라이언트 측(앱/웹))에도 같이 설계를 해주는 것이 바람직합니다.

서비스를 보호해주는 수단으로 Rate Limit 알고리즘 적용하는데, 이를 효과적으로 적용하기 위해서는 알고리즘에 대한 이해도를 높일 필요가 있고 또, 서비스의 트래픽 특성도 파악해 둘 필요가 있습니다. 여기에서는 Rate Limit 알고리즘 정리하는 것을 목표로 하고 간단한 알고리즘을 구현함으로써 이해도를 높이도록 하겠습니다.

왜 Rate Limit 알고리즘이 필요한가? 과도한 트래픽으로부터 서비스를 보호.

Resource 사용에 대한 공정성과 합리성 유도. 트래픽 비용이 서비스 예산을 넘는 것을 방지.

Rate에 대해 과금을 부과하는 Business M...