inflearn logo
강의

講義

知識共有

Spring Bootで実際に作りながら学ぶ大規模システム設計 - キャッシュ戦略

レート制限 - 実装

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

解決済みの質問

98

wisehero

投稿した質問数 33

0

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

spring-boot redis backend 시스템-디자인 cache

回答 2

0

kuke

wisehero님, 안녕하세요!

 

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

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

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

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

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

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

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

0

communityai8509

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

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

Rate Limiting 테스트 시 고려사항

  1. 기본 원리 이해:

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

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

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

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

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

오픈톡 인원이 다 차서 들어가지를 못 하네요...

0

7

1

부하 테스트 시 설정 관련 질문드립니다

1

23

1

HelloSpringApplication.java 클래스 실행 오류

0

11

1

강의 영상이 나오질 않습니다...

0

28

6

섹션 2

0

12

1

pub/sub의 연결 객체에 대해 질문 드립니다.

0

15

2

build 시 에러 해결방법 공유(docker.desktop 업데이트 -> 의존성 버전 수정)

0

20

1

LLM 서비스의 신뢰성

1

23

1

Inner class로 Config를 지정하는 이유

0

27

1

Request Failed 가 뜹니다.

0

28

2

네이버 API | '검색 - 책' API 제공 중단

0

40

2

ArticleReadService 관련 질문

0

29

1

kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.

1

69

1

domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다

1

49

1

Part 2 듣기전 복습하던 중, 아키텍처에 관한 질문이 있습니다.

0

46

2

장치 의존성과 CSR

0

36

1

테스트는 인터페이스를 대상으로 만드는것에 대해 궁금한 점이 있습니다.

0

31

1

Service Create/Update Record 운용과 Delete Record 미운용의 차이 질문

0

55

1

23강 5:38 부분 질문 있습니다!

0

75

1

23강 17초 부분 질문있습니다~

0

85

2

Split 전략 강의 중 질문 있어요

0

98

2

질문이 있습니다!!

0

105

2

섹션3에 22번째 강의에서 에러발생합니다..

0

154

4

http://localhost:8080/cache-strategy/{{cacheStrategy}}/items 호출 시 NPE 에러 문의

1

172

2