-
2024.11.04 rate limiting systemTIL 2024. 11. 5. 00:10
https://levelup.gitconnected.com/system-design-rate-limiting-system-with-bloom-filters-f540f19152ef
bloom filter로 rate limit를 구현했다.
일단 ip기반으로만 rate limit를 할 거면 LB로도 충분하지 않을까 싶다.
유저의 정보나 사용정지 등의 부가적인 행위를 해야겠다면 애플리케이션에서 해야겠지만, ip만 보고 막는다면 LB에서 충분히 할 수 있다.
nginx에선 rate limit를 bucket 알고리즘으로 구현되어 있는 것을 사용할 수도 있고,
haproxy stick table이라는 게 존재해서 ip나 헤더, 쿠키 정보로도 일정시간 block 할 수 있다.위의 기능을 각자 또 할 수 있는지는 확인이 필요하고.
bloom filter는 중복 검사할 때 많이 쓰는데, 닉네임 중복 등에 쓸 수 있다. 여기서는 해쉬 해서 ip가 요청이 왔었는지 체크한다.
애플리케이션에서 하다 보니, 인스턴스가 여러 개라면 사용이 불가능하다. bloom filter를 글로벌하게 사용하던가.
옛날에 쓴 글,
'TIL' 카테고리의 다른 글
2024.11.07 meta cache (0) 2024.11.07 2024.11.05 uuid (0) 2024.11.06 2024.11.01 Query tuning (0) 2024.11.02 2024.10.29 JWT (0) 2024.10.30 2024.10.28 AOP Inheritance (0) 2024.10.29