inflearn logo
강의

講義

知識共有

カフカパーフェクトガイド - コア編

Consumerとauto.offset.resetの内部動作メカニズムの詳細

Kafka Consumer 데이터 유실 관련

706

JuNu

投稿した質問数 24

0

안녕하세요 강사님!

Consumer와 auto.offset.reset의 내부 동작 메커니즘 상세 이해듣던 중 궁금한 부분이 생겨서 질문 남깁니다 🙂

Kafka Consumer는 __consumer_offsets 기준으로
데이터를 읽어드린다고 이해를 했는데

동일 컨슈머 그룹에 이미 메세지가 있는 경우
프로듀서가 메세지를 전송한 이후에 컨슈머를 기동을 한다고 하면 earlist, lastest 모두 전송한 메세지를 받을 수 없어
데이터 유실이 발생할 가능성이 있을 것 같은데

 

이러한 데이터 유실을 방지하는 방법이 있을까요?
프로듀서 같은경우 ACK 설정으로 이를 방지할 수 있을 것 같은데 컨슈머에도 동일한 설정이 있는지 궁금합니다.

kafka 데이터-엔지니어링

回答 2

1

dooleyz3525

안녕하십니까,

제가 질문을 잘 이해하지 못했습니다.

"동일 컨슈머 그룹에 이미 메세지가 있는 경우
프로듀서가 메세지를 전송한 이후에 컨슈머를 기동을 한다고 하면 earlist, lastest 모두 전송한 메세지를 받을 수 없어 데이터 유실이 발생할 가능성이 있을 것 같은데" 에서

동일 컨슈머 그룹에 이미 메시지가 있는 경우가 어떤 의미 인지요? 동일 컨슈머 그룹에 이미 메시지가 있다면, 해당 그룹내의 컨슈머가 이미 메시지를 받아서 읽었다는 걸로 해석한다면, 이미 메시지를 읽고 __consumer_offsets에 읽은 offset을 기록했기 때문에 데이터 유실이 아니라 정상적인 동작입니다만,

해당 내용이 어떤 의미인지 좀 더 자세히 기재해 주시겠습니까?

 

감사합니다.

0

JuNu

음 현상을 조금 더 자세히 말씀드리면

  • __consumer_offsets에 offset을 나타내는 로그 파일 존재

  • Producer가 먼저 데이터를 1, 2 라는 데이터 전송

     

  • Consumer가 기동된적 없음


이러한 상황에서 Consumer를 기동하게 된다면
Producer가 전송한 1, 2 라는 데이터를 Consumer가 poll을 할 수 없어서 해당 데이터는 유실되는 현상을 질문 드렸는데
혹시 제가 맞게 이해한것일까요~?

0

dooleyz3525

__consumer_offsets에 offset을 나타내는 로그 파일 존재한다는 의미가 데이터 1, 2를 읽은 OFFSET 번호가 해당 Consumer Group 번호로 기재되어 있다는 건가요? 그럼 해당 데이터는 이미 Consumer가 읽어 들인 것입니다.

그리고 Consumer가 기동된 적 없다는 의미는 해당 Consumer group 번호가 아닌 다른 Consumer Group 으로는 기동한적 없다는 의미인가요? 그럼 해당 consumer로는 데이터를 읽은 적 없으므로 데이터를 poll해서 읽게 됩니다. 유실되지 않습니다.

 

만약 __consumer_offsets에 offset을 나타내는 로그 파일 존재한다는 의미가 그냥 파일만 있고 아무 기록도 없다면, 어떤 Consumer도 해당 topic의 데이터를 읽지 않았으므로, consumer를 기동하면 해당 topic의 데이터를 poll해서 읽고 __consumer_offsets에 읽은 데이터를 기록하게 됩니다. 데이터는 유실되지 않습니다.

 

virtual box 설치 문제

0

60

2

카프카 서버 구축 관련 문의

0

65

2

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

0

67

2

Zookeeper에서 KRaft

0

77

1

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

0

96

2

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

0

68

2

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

0

81

2

VM 과 도커의 차이

0

137

2

vm 어댑터설정 문의

0

75

2

Cooperative Sticky Rebalancing 질문

0

56

2

consumer 설정 질문

0

67

2

consumer.poll 질문입니다.

1

68

2

mainThread.join() 관련 질문

0

56

2

문의

0

151

2

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

0

119

2

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

0

106

2

강의 설명 및 코드 정리

0

172

2

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

0

150

1

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

0

155

3

KafkaTimeoutError:

0

157

2

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

0

183

2

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

0

107

2

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

0

214

2

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

0

198

2