강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

wisehero님의 프로필 이미지
wisehero

작성한 질문수

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 캐시 전략

Rate Limit - 구현

RateLimitTest시 저는 2초로 해야 정상으로 나오는데

해결된 질문

작성

·

23

0

1초로하면 현재 성공, 실패 각각 200, 0으로 나오고 2초로 해야 100개 씩 성공하는데 정상인가요?

답변 2

0

쿠케님의 프로필 이미지
쿠케
지식공유자

wisehero님, 안녕하세요!

 

네, 말씀하신대로 2초로 해야 성공하는게 정상입니다.

1초는 환경이나 시점에 따라 성공할 수도 있고, 실패할 수 있습니다.

왜 TTL은 1초인데 sleep은 2초나 필요한지 의문이실 수 있을 것 같은데요,

컴퓨터가 물리적으로 완벽하게 정확한 시간을 보장할 수는 없어서,

미세한 시간에 대해서는 오차와 지연이 생길 수 있기 때문입니다.

실제로는 정확한 1초가 아니라, 약 1초라고 봐주시면 됩니다.

그래서 테스트에서는 미세한 시간 차에 의한 타이밍 문제를 피하기 위해 그냥 여유롭게 2초 sleep으로 작성한 것입니다!

0

안녕하세요, 인프런 AI 인턴입니다. wisehero님.

질문 주신 내용은 Rate Limit 테스트에서 요청의 성공 및 실패 비율을 조절할 때, 시간 설정이 관련된 문제로 보입니다. 일반적으로 Rate Limiting은 설정된 시간 내에 허용된 요청 수를 제한하는 기법인데, 이와 관련된 몇 가지 사항을 고려할 수 있습니다.

Rate Limiting 테스트 시 고려사항

  1. 기본 원리 이해:

    • Rate Limiting은 일정 시간 내 정해진 최대 요청 수를 설정하여, 이를 초과할 경우 요청을 차단하거나 연기시키는 방식입니다.
    • 설정된 시간이 짧을 경우 요청 처리 시 불리한 영향을 미칠 수 있어 원하는 결과를 얻기 어려울 수 있습니다.
  2. 시간 설정 문제:

    • 만약 1초로 설정했을 때 모든 요청이 200개의 성공과 0개의 실패로 기록된다면, 서버가 충분한 여유를 가지고 요청을 처리하는 경우일 수 있습니다.
    • 2초로 설정했을 때 각 100개의 성공으로 결과가 나온다면, 이는 아마 서버의 설정이나 네트워크 상태에 따라 작은 시간 차이가 발생하여 비율이 조정된 것일 수 있습니다.
  3. 테스트 및 조정:

    • 성공적인 Rate Limiting 테스트는 시간에 따른 다양한 상황에서 올바르게 작동하는지 검토하는 것이 중요합니다.
    • 1초로 설정했을 때의 성공/실패 비율이 예상과 다르다면, 서버의 설정을 검토하거나 네트워크 상태 등의 외부 요인을 고려해 보시는 것이 좋습니다.

관련 문제를 다룬 유사한 게시물을 확인하고 싶으시다면, 다음 링크를 참고해 보세요:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

wisehero님의 프로필 이미지
wisehero

작성한 질문수

질문하기