2017-01-15 4 views
0

브로커 연결이 끊어 지거나 (예 : 인터넷 연결이 끊어지고 브로커를 사용할 수없는 경우) KafkaProducer가 시간 초과 예외를 발생시킬 것으로 예상했지만 , KafkaProducer는 여전히 문제없이 정상적으로 전송을 수행했습니다. (나는 Ack를 no로 설정했다).Kafka 스트림에 대한 연결이 끊어진 경우의 KafkaProducer의 동작

브로커에 대한 연결이 끊어 지거나 복원 될 때 KafkaProducer가 어떻게 동작하는지에 대한 설명서가 없었습니다.

누구에게도이 경험이 있습니까? 콜백에서 비동기 전송 및 처리 오류가있는 카프카 버전 0.10을 사용하고 있습니다.

답변

3

먼저, Kafka Streams이 Apache Kafka의 스트림 처리 라이브러리이고 사용자의 질문이 Kafka Streams가 아닌 것으로 분명히 밝히고 싶습니다. 당신은 프로듀서와 중개인에 대해서만 이야기합니다 (미래의 혼동을 피하기 위해 전문 용어를 명확히하고 싶음).

질문 : 브로커에 쓸 수 있는지 확인하는 유일한 방법은 acks를 활성화하는 것입니다. acks를 비활성화하면 생산자는 "화재 및 잊어"전략을 적용하고 쓰기가 성공했는지 및/또는 Kafka 클러스터에 대한 연결이 아직 설정되어 있는지 확인하지 않습니다.

acks를 활성화하지 않았기 때문에, 오류 콜백을 결코 얻을 수 없습니다. 동기화/비동기 쓰기와 독립적입니다.

+0

명확한 답변을 보내 주셔서 감사합니다. 나는 또한 질문에서 용어를 업데이트 할 예정이다. – Xitrum

+0

@Matthias, 나는 ACKS_CONFIG = äll을 설정했다. 그러나 kafka가 다운되는 동안 나는 여전히 어떤 오류/예외도 찾지 못한다. 다른 설정이 필요합니까? 저를 안내 해주십시오. – Guna

+0

확실하지 않습니다. 동기화/비동기 쓰기를 수행합니까? send'콜백 (callback) '을 설정 했습니까? –