해결된 질문
작성
·
230
·
수정됨
0
안녕하세요 강의 잘 듣고 있습니다.
강의
[섹션 5 카프카 프로듀서 애플리케이션 개발 > 메시지 키를 가진 프로듀서 애플리케이션]
에서의 질문 드립니다..
질문 1.
강의를 따라가며 실습을 그대로 진행해보고 있는데..
아래와 같이 kafka-console-consumer 명령어에 --from-beginning 옵션을 주고 실행했을 때..
보낸 순서대로 출력이 이루어지지 않는것으로 보여서 이유가 무엇인지 궁금합니다..
질문 2.
애플리케이션에서 key1-value1 을 먼저 send 하고
key2-value2 를 send 하는 순서로 실행을하면..
kafka-console-consumer 명령어로 실시간으로 출력되는 것을 보았을 때..
key2 가 먼저 출력되고 key1 이 출력됩니다.. 이 경우 무엇이 잘못 된건지 궁금합니다.
실습환경
Kafka 2.5.0
코드는 3.4.1 kafka-producer 의 ProducerWithKeyValue 를 key value 값만 변경하였습니다.
감사합니다.
답변 1
1
질문1) --from-beginning 옵션은 각 파티션의 레코드를 처음부터 읽는 다는 것이지, 프로듀서가 넣은 순서대로 읽는 다는 뜻이 아닙니다. 그러므로 결과적으로 파티션 별 순서를 보시는 것이 정확합니다.
질문2) 코드를 올려주셔야 정확한 상황을 알 수 있습니다만, [key1-value1]과 [key2-value2]를 프로듀서 클라이언트 코드로 전송했을 경우 flush가 일어나면서 파티션에 동시에 전송될 수 있습니다. 이 경우 컨슈머는 실제로 전송된 순서와 무관하게 [key2-value2]가 출력될 가능성이 있습니다.