inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

카프카 완벽 가이드 - 코어편

피자 주문 시뮬레이션 Producer 구현: 피자 주문 Producer 구현 - 02

key를 갖는 메시지 전송 시 궁금한 사항이 있습니다.

212

웨이드

작성한 질문수 10

0

강사님, 안녕하세요! 강의 잘 듣고 있습니다.

강의 들으면서 궁금한 사항이 생겨서 질문드려요.

key를 지정해서 메시지를 전송하면 같은 key에 한해서는 같은 파티션으로 메시지가 전송되는 것을 보장 받을 수 있고, 해당 key로 전송된 메세지는 순서를 보장받을 수 있다. 까지는 이해했는데요~

운영하면서 파티션의 개수가 늘어날 경우, 늘어난 직후에도 같은 key로 전송되는 메세지는 순서를 보장받을 수 있는 것일까요?

(즉, 파티션 개수가 늘어나기 이전에 key:a, partition:0으로 전송되었다면 추후, 파티션 개수가 늘어나 리밸런싱이 일어나더라도 key:a 메세지는 partition:0으로 전송되는 것일까요?)

kafka 데이터-엔지니어링

답변 1

1

권 철민

안녕하십니까,

기본적으로 토픽의 Partiton 추가는 운영중에는 하지 않고, 별도의 유지보수 시간에 수행합니다.

왜냐하면 Partition을 추가하면 기존 topic의 데이터를 모든 파티션에 새롭게 Repartition하기 때문이며, 이 시간 중에는 topic에 blocking이 걸리게 됩니다. 데이터가 많으면 많을 수록 Repartition에 시간이 걸립니다.

이 시간중에 producer는 메시지를 보내지 못하고 connection timeout이 발생하며 Consumer의 경우는 partition 들이 repartition될 때까지 기다렸다가, rebalacing을 수행하게 됩니다.

이때 기존에 a 메시지가 partition 0으로 갔을지라도 repartition후에는 다른 partition으로 갈 수 있습니다.

감사합니다.

 

virtual box 설치 문제

0

62

2

카프카 서버 구축 관련 문의

0

67

2

카프카 토픽 Key 타입 변경에 관한 질문

0

70

2

Zookeeper에서 KRaft

0

78

1

카프카 학습과 관련하여 질문 드립니다

0

98

2

파티션 증가시 비용 증가 고려

0

72

2

Kafka 초기 Partition 개수 설정 관련 질문

0

83

2

VM 과 도커의 차이

0

139

2

vm 어댑터설정 문의

0

78

2

Cooperative Sticky Rebalancing 질문

0

58

2

consumer 설정 질문

0

68

2

consumer.poll 질문입니다.

1

69

2

mainThread.join() 관련 질문

0

57

2

문의

0

153

2

멀티 브로커 설정 중 포트 충돌 발생

0

120

2

Consumer Group 강의 Lag 질문있습니다!

0

107

2

강의 설명 및 코드 정리

0

174

2

실습 코드는 어디서 받나요.. 아무리 찾아도 엄네요..

0

151

1

java.nio.BufferUnderflowException 에러 발생합니다..

0

158

3

KafkaTimeoutError:

0

157

2

acks 1 이면 비동기가 아니지 않나요?!

0

185

2

Producer의 메시지 비동기화 전송 구현 강좌 내용 중 질문

0

109

2

자문자답: 데이터 누락된다고 하시는 분 참고하세요.

0

216

2

자문자답: kafka Error connecting to node utuntu-20.myguest.virtualbox.org:9092

0

203

2