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

봄봄봄님의 프로필 이미지

작성한 질문수

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

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

동시성제어

23.08.14 13:25 작성

·

704

0

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

답변 2

1

최상용님의 프로필 이미지
최상용
지식공유자

2023. 08. 14. 22:18

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

감사합니다.

봄봄봄님의 프로필 이미지
봄봄봄
질문자

2023. 08. 14. 22:21

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

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

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

최상용님의 프로필 이미지
최상용
지식공유자

2023. 08. 14. 22:35

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

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

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

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

0

임동희님의 프로필 이미지

2023. 08. 14. 16:09

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

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

봄봄봄님의 프로필 이미지
봄봄봄
질문자

2023. 08. 14. 17:13

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

 

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