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

아리마님의 프로필 이미지
아리마

작성한 질문수

[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!

리밸런스 리스너 활용이 궁금합니다.

작성

·

142

0

강사님 안녕하세요.
스프링 카프카로 공부를 하는 중, 궁금증이 생겨서 문의를 드립니다.
 
@KafkaListner 를 사용해서 컨슈머 리스너를 구현하였습니다.
리밸런스가 일어날 때, 메시지 중복 처리 발생을 막기 위한 예제를 직접 만들어 보고있는데요.
 
500개 레코드를 Poll 해온 뒤, 300번째 정도 레코드를 읽었을 때 Rolling Update 가 진행되도록 상황을 만들어서
리밸런싱이 발생하도록 하였습니다.
스프링 카프카에서 제공되는 ConsumerAwareRebalanceListener 를 이용하면 리밸런스가 일어날 때
onPartitionRevokedBeforeCommit 와 AfterCommit 함수를 이용해서 300번째까지 처리한 오프셋으로
수동 커밋을 해줄 수 있을 것 같던데요.
 
궁금한 것은 현재 300번째까지 처리했다라는 오프셋 값을 어떻게 얻을 수 있는지 모르겠습니다.
onPartitionRevokedBeforeCommit 의 인자로 넘어오는 Consumer 객체나 TopicPartition 객체에는
500개 레코드를 Poll 해온 시점의 offset 값은 있지만 현재 처리한 시점의 offset 값은 없는 것 같더라고요.
 
강사님 혹시 답을 알고 계실까요?
 

답변 1

0

데브원영 DVWY님의 프로필 이미지
데브원영 DVWY
지식공유자

아리마님, 스프링 카프카에 대한 질문을 주셨는데요.

스프링 카프카는 이번 강의에 포함되어 있지 않으며 관련 개발 경험이 부족해서 답변을 드리기 어려운점 양해부탁드립니다. 공식 자바 아파치 카프카 라이브러리에 대한 질문을 남겨주시길 부탁드리겠습니다.

아리마님의 프로필 이미지
아리마
질문자

강의에는 스프링 카프카가 포함되어 있지 않지만, 함께 참고하고 있는 도서에는 스프링 카프카 챕터가 있어서 질문을 드렸는데 아쉽게도 경험이 부족하신 부분이군요. 아쉽지만 잘 알겠습니다.

아리마님의 프로필 이미지
아리마

작성한 질문수

질문하기