티스토리 뷰

프로듀서 애플리케이션 개발

위 코드를 실행 시키면 실제 test 토픽에 testMessage 레코드가 쌓인것을 확인할 수 있다.

 

메시지 키를 가진 레코드를 전송하는 프로듀서

 

키값을 같이 확인하기 위해 --property옵션을 같이 넣어서 실행시켜준다. 키값 없이 보냈던 메시지의 키는 null로 나오고 그 외의 경우 같이 출력되는 것을 확인할 수 있다.

 

레코드에 파티션 번호를 지정하여 전송하는 프로듀서
  • 파티션을 직접 지정하고 싶다면 토픽이름, 파티션 번호, 메시지 키, 메시지 값을 차례로 입력하여 보내면 된다.

특정 파티션 (3번)에 메시지를 보내고 컨슈머에서 해당 파티션의 메시지를 읽을 수 있다.

 

커스텀 파티셔너를 가지는 프로듀서
  • config에서 PARTITIONER_CLASS_CONFIG에 직접 작성한 커스텀 클래스 파일을 지정해주면 된다.
configs.put(ProducerConfig.**PARTITIONER_CLASS_CONFIG**, CustomPartitioner.class);

아래와 같이 test 토픽의 6번 파티션에 LAG이 1로 메시지가 하나 쌓이고, 보냈던 Pangyo_6 메시지 값을 확인할 수 있다.

 

레코드 전송결과를 확인하는 프로듀서 (동기)

`test-7@3`으로 7번 파티션의 3번 오프셋으로 메시지가 쌓였음을 알려주게 된다.

실제 토픽 test의 7번 파티션의 메시지를 출력해보면 4개의 메시지와 3번 오프셋에 전달된 "Pangyo:Pangyo_22" 값을 확인할 수 있다.
참고로 acks를 0으로 설정하게 되면 응답값을 확인하지 않게 되므로 오프셋을 알 수가 없어 오프셋으로-1을 출력하게 된다.

반응형
Comments
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday