하나의 command로 Consumer와 Producer를 모두 사용
키값을 보다 쉽게 출력
토픽 메시지의 포맷팅을 보다 다양하게 출력
메시지 헤더(Header) 정보를 볼 수 있음
내부 offsets값을 Reset하는데 주로 사용
apt-get install kafkacat
옵션으로 전체 토픽에 대한 메타 정보 확인
kafkacat -b localhost:9092 -L
특정 토픽의 메시지 읽어오기(키값은 나오지 않음)
kafkacat -b localhost:9092 -t spooldir-test-topic
-C 옵션부여하여 명확하게 Consumer 모드로 Topic의 메시지 읽어오기
kafkacat -b localhost:9092 -t spooldir-test-topic -C
특정 토픽의 메시지를 읽어오되 키(Key)값도 함께 표시(키 seperator는 #)
kafkacat -b localhost:9092 -t spooldir-test-topic -C -K#
특정 토픽의 메시지를 읽어오되 json 포맷으로 출력(key, value값 자동 출력됨)
kafkacat -b localhost:9092 -t spooldir-test-topic -C -J -u -q | jq '.'
내부 토픽인 connect-offsets 토픽 읽기
kafkacat -b localhost:9092 -t connect-offsets -C -K#
내부 토픽 connect-offsets 의 특정 파티션의 메시지 읽기
kafkacat -b localhost:9092 -t connect-offsets -C -p 17 -K#
토픽 메시지를 특정 포맷으로 출력하기
kafkacat -b localhost:9092 -t connect-offsets -C -f '\nKey: %k\nValue: %s\nPartition: %p\nOffset: %o\n\n'
kafkacat 테스트용 샘플 토픽 생성
kafka-topics --bootstrap-server localhost:9092 --create --topic kcat-test-topic --partitions 3
Producer 모드로 메시지 전송 후 메시지 확인
kafkacat -b localhost:9092 -t kcat-test-topic -P -K#
kafkacat -b localhost:9092 -t kcat-test-topic -C -K#
connect-offsets 토픽에서 connector별 key값과 partition 확인
kafkacat -b localhost:9092 -t connect-offsets -C -f '\nKey: %k\nValue: %s\nPartition: %p\nOffset: %o\n\n' -u -q
offset Reset을 적용. 대상 connector에 해당하는 key값의 value에 Null을 적용. 최종 메시지가 있는 partition을 찾아서 해당 partition에 Null 메시지를 적용해야 함
echo '["csv_spooldir_source",{"fileName":"csv-spooldir-source-01.csv"}]#' | \
kafkacat -b localhost:9092 -t connect-offsets -P -Z -K# -p 17