inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

발급가능한 쿠폰개수를 1인당 1개로 제한하기

동시성제어

890

봄봄봄

작성한 질문수 5

0

안녕하세요 강의를 듣다가 궁금증이 생겼는데요. kafka는 메시지를 하나씩 처리하기 때문에 동시성 제어도 가능할 것이라고 이해했는데 그렇다면 여기서 레디스를 사용하지 않더라도 카프카만 사용해도 동시성과 관련된 데이터 정합성을 보장할 수 있는건가요?

java docker spring-boot kafka redis

답변 2

2

최상용

봄봄봄님 안녕하세요.
말씀하신대로 카프카를 사용해서 동시성과 관련된 데이터 정합성을 보장할수도 있습니다.
컨슈머가 1대일경우에는 순차적으로 처리를 하기 때문입니다.
다만, 컨슈머가 여러대일경우엔 파티셔닝키를 잘 설정해야 하고, 파티션 개수를 늘릴때는 그에 따른 전략을 잘 설정해야 합니다.
결론적으로 봄봄봄님께서 말씀해주신 것처럼 카프카를 활용하여 동시성제어를 할 수 있습니다.
다만, 예외적인 케이스가 많이 생길 수 있어 적절한 상황과 적절한 설계를 했을 때 가능하다고 말씀 드릴 수 있을 것 같습니다.

감사합니다.

0

봄봄봄

안녕하세요 최상용님 답변 감사합니다.

궁금한 점이 해결되었습니다.

최상용님 답변에서 또 궁금한 점이 생겼는데 혹시 예외사항이라면 어떤 것들이 있을까요? 키워드만 알려주신다면 제가 검색해보도록 하겠습니다.

1

최상용

  1. 카프카 파티셔닝의 동작방식

  2. 컨슈머가 여러대일때 동시성 이슈를 어떻게 보장할 것인지

  3. 파티션이 늘어났을 때 생길 수 있는 이슈가 무엇이 있을지 & 어떻게 해결할 것인지

에 대해서 생각해보시면 좋을 것 같습니다!

0

임동희

서버가 1대일때는 카프카만 써도 가능할거 같은데, 서버가 여러대일 경우에 동시성 문제가 발생될거 같네요

ex) 1번 아이디의 회원이 4번의 요청을 보내고 서버가 4대 일경우, 4개의 요청이 동시에 수행될 수 있으므로.

0

봄봄봄

프로듀서 서버가 4대인경우를 말씀하신건가요? 결국 컨슈머는 메시지를 하나씩 처리한다면 앞단에서 동시에 메시지를 여러개 발행해도 괜찮지 않나요?

 

제가 이해를 잘 못했는데 혹시 예시를 조금더 구체적으로 들어주신다면 감사하겠습니다!

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

135

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