You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
그런데 rateLimiter.isAllowed(routeId, key)를 하는 과정에서, Token Bucket Algorithm을 적용하여 Api Rate Limiter를 적용하는 구조인데, Race Condition을 방지하기 위해서 Lua 스크립트를 통해서 진행한다고 합니다.
What is the bug?
Redis Rate Limiter를 이용하여 Api Rate Limiter를 구현하려고 하는데, Lua 스크립트를 읽지 못해서 오류가 나는 현상
Under what circumstances does the bug occur?
위와같이 authFilter를 통과하고, 그다음 api rate limiter를 구현하기 위해 limitFilter를 통과하도록 구성했습니다. limit filter는 아래와 같이 구성했습니다.
그런데 rateLimiter.isAllowed(routeId, key)를 하는 과정에서, Token Bucket Algorithm을 적용하여 Api Rate Limiter를 적용하는 구조인데, Race Condition을 방지하기 위해서 Lua 스크립트를 통해서 진행한다고 합니다.
하지만, 해당 경로로 요청을 보낼 시,
attempt to call field 'replicate_commands' (a nil value) 라는 오류가 발생하게 됩니다. Lua 스크립트를 Redis가 제대로 읽지 못하는 것으로 추정됩니다. 하지만 원인을 모르겠습니다.
Redis 버전때문인가 생각이 들어서 Redis 3.2, 4.2, 5.0, 7.2 버전으로 전부 굴려봤지만 항상 동일한 오류가 뜹니다...
아무리 검색해봐도 원인을 알 수 없습니다...
자세한 코드는 back-gateway에 있는 spring cloud gateway 코드 참조해주시면 됩니다.
Expected Result
정상적으로 Token Bucket Algorithm이 적용되어야 합니다.
Reference Materials (Optional)
[ 참고자료 ]
참고자료 1
참고자료 2
참고자료 3
참고자료 4
The text was updated successfully, but these errors were encountered: