inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실습으로 배우는 선착순 이벤트 시스템

문제점

쿠폰 카운트를 Redis에 의존하고 있는데요

1071

목동 개발자

작성한 질문수 35

4

만약 Redis에 장애가 발생한다면 2차 장치로 DB Count에 의존할 수 밖에 없는걸까요?

실무에선 어떻게 대응하시는지 궁금합니다!

java docker spring-boot kafka redis

답변 2

3

최상용

목동 개발자님 좋은 질문 감사합니다!
실무에서는 첫번째로 레디스가 특정 트래픽을 받았을 때 충분히 운영가능한지 성능테스트를 먼저 진행합니다.
그렇게함으로써 레디스가 트래픽을 견딜 수 있는가 (장애가 발생하지 않는가) 를 실험합니다.

그렇지만 트래픽을 견딜 수 있더라도 다른이유로 Redis 에 장애가 발생할 수 있습니다.
그런 경우를 대비하여 Redis 를 이중화를 하여 master 가 다운되었을 때 replication 을 master 로 승격시켜서 장애시간을 최소화 하도록 합니다.

이것보다 안전하게 하려면 Replication 까지 장애가 일어났을때를 대비하여 mysql 혹은 다른 서버의 redis 와 같은 데이터베이스로 관리를 할 수 있을 듯 합니다.

다만, 대부분의 경우 replication 정도까지 하고, 별도의 데이터베이스로 관리하는 경우는 드문 것 같습니다.
정말 서비스 안전성이 중요하다고 생각되는 경우에는 별도의 데이터베이스까지 사용할 것 같습니다.

좋은 질문 해주셔서 감사합니다 :)

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요. 쿠폰 카운트를 Redis에 의존하고 있는 경우, Redis에 장애가 발생했을 때 대응하는 방법은 다양합니다. 실무에서는 일반적으로 다음과 같은 방법으로 대응합니다.

  1. 예외 처리: Redis에 접속할 수 없는 경우에는 예외 처리를 통해 오류를 처리하고, 다른 대체 방법을 사용할 수 있도록 합니다. 예를 들어, Redis에 접속할 수 없는 경우에는 DB Count를 사용하도록 설정할 수 있습니다.

  2. 캐시 유효 시간 설정: Redis에 저장된 쿠폰 카운트를 일정 시간마다 갱신하도록 설정하여, 장애 상황이 발생해도 일정 시간 동안은 캐시된 카운트 값을 사용할 수 있도록 합니다. 이는 Redis의 장애 시간 동안 일시적으로 DB Count를 사용하는 것을 방지할 수 있습니다.

  3. 리더/팔로워 모델 사용: Redis의 리더/팔로워 모델을 사용하면, 리더 Redis에 장애가 발생한 경우 팔로워 Redis로 자동으로 스위칭할 수 있습니다. 이를 통해 Redis 장애 시간을 최소화하고, 대체 Redis로 쿠폰 카운트를 계속해서 이용할 수 있습니다.

위의 방법들은 Redis 장애 시에 대체 방법을 사용하거나, 최소한의 영향을 받도록 대응하는 방법입니다. 하지만 이외에도 실무 환경에 따라서 다양한 대응 방법이 있을 수 있으니, 실제로 사용하는 시스템의 상황에 맞춰 적절한 방법을 선택하셔야 합니다. 추가적으로 Redis와 관련된 문서나 자료를 참고하시면 더 자세한 내용을 알 수 있을 것입니다. 어떤 방식을 선택하든, 장애에 대비하여 대체 방법을 고려하는 것이 중요합니다. 제가 도움이 되었기를 바라며, 더 궁금한 점이 있다면 언제든지 질문해주세요. 좋은 하루 되세요!

ApplyService와 Consumer서비스의 db공유?

0

56

2

consumer가 topic을 전부 사용하기 전에 사용자에게는 쿠폰이 발급된것으로 확인하는 과정에서 발생가능한 문제.

0

77

1

쿠폰에 관련되어서 좀 더 참고할만한 자료가 있을까요?

0

86

2

흐름정리 제가 이해한게 맞나요?

0

73

2

안되서 스트레스 받아요

-2

111

2

프로젝트 진행할때 모듈로 추가하는 이유가 궁금합니다!

0

185

2

Redis 활용하기 문제점 해결하기 부분이 이해가 잘 안됩니다...

0

213

1

카프카를 도입하고 난 뒤 로그로 보여지는 장점을 발견하지 못하고 있습니다.

0

167

2

키생성 방식에 따른 성능

0

168

2

사용자 동선에 대한 트랜잭션 문의

0

134

2

강사님 강의를 듣고 실제 프로젝트에서 이벤트 응모 시스템을 만들어 봤습니다.

0

210

1

쿠폰 발급 개수 제한

0

183

2

ApplyService 의 총 처리 시간이 궁금합니다.

0

154

1

쿠폰 생성 에러 처리에 관해서 질문이 있습니다.

0

224

2

마지막에 하신 테스트 자체는 실패하는 게 맞는거죠??

0

276

2

안녕하세요 질문 있습니다!

0

295

1

쿠폰 발급 유저 흐름에 대한 질문

0

308

2

수량 조절에 대한 질문이 있습니다.

0

231

2

kafka Producer 실행 중 에러 시 redis count 정합성 이슈

0

398

2

test 과정에서 오류가 발생합니다.

0

383

1

도커 환경설정에 대해서

0

269

2

Redis의 INCR 사용 해도 Race condition이 잡히지 않는 문제

0

599

1

consumer 모듈

0

322

2

카프카 토픽 생성오류

0

383

2