인프라/Kafaka

[실습] Kafka 수동 커밋 구현(리밸런싱)

물에서육지로 2024. 12. 12. 11:13

카프카에서 중복 컨슘이 발생하거나 컨슘 데이터 손실이 발생하는 경우가 있다.

가장 큰 이유가 리밸런싱에 의한 발생 원인을 들 수 있다.

그래서 전략 적으로 수동 커밋을 통한 리밸런싱을 컨트롤 해보려고 한다.

자동 커밋 설정은 편리하지만 컨슈머 그룹의 리밸런싱이 발생할 때 메시지의 중복 처리나 유실 문제가 발생할 수 있다.

 

1. @RestController 생성

    MyController에서 앞으로 url 호출 예정 (post: /message/d/{key} 호출)

2. Producer 설정

 

실습할 때마다 Procuder 템플릿을 만들어 줄 수 없어서 직렬화 테스트 했던 템플릿으로 불러와서 사용

String, String 구조로 전송할 것이지 떄문에 사용

 

3.Consumer

 

 

4.config

 

수동 커밋 설정 값 Consumer에 셋팅

AckMode는 기본 Batch 인데 Manual로 변경

 

5. 결과