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

dohyun_lim님의 프로필 이미지

작성한 질문수

카프카 완벽 가이드 - 커넥트(Connect) 편

JDBC Sink Connector의 메시지 배치(Batch) 처리 이해

JDBC Sink Connector의 메시지 배치(Batch) 처리 이해

24.07.27 14:17 작성

·

65

0

안녕하세요 강사님

kafka에서 JDBC SInk Connector의 Consumer가 Offset 450개로 가져가는 순간 commit 이 되어서 __consumer_offsets가 update되는것이 아니라

executeBatch()가 까지 다 성공해야 commit이 날라가서 __consumer_offsets가 update되는 구조인가요?

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

2024. 07. 29. 09:33

안녕하십니까, 요즘 몸이 좀 안 좋아서 답변이 늦었습니다.

질문을 정확히 이해한 것인지는 모르겠지만,

jdbc sink connector가 __consumer_offset에 write를 하는 시점은 Consumer가 Kafka Message를 가져오는 시점이 아니라 Sink connector가 target db에 성공적으로 DML을 수행한 뒤에 write됩니다.

감사합니다.

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

2024. 07. 29. 09:41

아이고 다시 하루 빨리 건강해지시길 바라겠습니다.

image.png



그러면 JDBC Sink Connector 의 Consumer는 기존의 Kafka Consumer랑 다르다고 생각하면 되나요? 기존의 kafka consumer는 poll 하고 commit하는 방식이었던걸로 기억해서요

권 철민님의 프로필 이미지
권 철민
지식공유자

2024. 07. 29. 09:52

기억이 가물하긴 한데, 예전에 테스트 한 경험으로는 target db에 제대로 작업이 안되었으면 commit을 안한것 같습니다. 아마 connector 단에서 db 작업까지 감안한 뒤에 commit 하도록 되어 있는것 같습니다..

근데, 저도 시간이 나면 다시 테스트를 한번 해봐야 할 것 같습니다. 시간 나면 다시 테스트 해보고 확실하게 말씀드리겠습니다.