'ZK'에 해당되는 글 1건

  1. 2016.04.14 [Logstash] Kafka 연동 시 Producer에서 등록이 잘 안될 때 확인 사항 -1

[Logstash] Kafka 연동 시 Producer에서 등록이 잘 안될 때 확인 사항 -1

Elastic/Logstash 2016.04.14 12:35

한 줄 정리)

문제는 Kafka version 과 logstash kafka plugin version 이 맞지 않아서 발생한 문제 입니다.

ㅡ.ㅡ;



-----------------------------------------------------------------


다 똑같지는 않겠지만 간혹 kafka + zk 실행 하고 producer 실행 및 consumer 실행을 했는데 데이터가 들어 가지도 않고 가져 오지도 못하는 문제를 겪는 경우가 있습니다.


일단 제가 경험한 메시지는 아래와 같습니다.


ERROR Error when sending message to topic test1 with key: null, value: 13 bytes with error: Batch Expired


이 메시지를 검색해 보면 그닥 쓸만한 내용이 나오지 않습니다.

그래서 검색어를 "kafka advertised host name"로 변경해서 찾아 보았습니다.


ec2에 올려 구성한 경우 위 검색어에 대한 문제로 kafka 와 zk 가 정상적으로 등록이 되지 않는 문제가 있는 것 같습니다.

실제 zk cli 로 들어가서 ls /brokers/ids/0 하면 아무런 정보가 나오지 않습니다. 

이것은 zk에 broker 가 정상적으로 등록이 되지 않았다는 의미 인데요.


https://cwiki.apache.org/confluence/display/KAFKA/FAQ


여기서 아래 내용 참고해서 설정 변경 하시고 broker가 zk 에 잘 등록되어 있는지 부터 확인 하시면 좋을 것 같습니다.


Why can't my consumers/producers connect to the brokers?

When a broker starts up, it registers its ip/port in ZK. You need to make sure the registered ip is consistent with what's listed in metadata.broker.list in the producer config. By default, the registered ip is given by InetAddress.getLocalHost.getHostAddress. Typically, this should return the real ip of the host. However, sometimes (e.g., in EC2), the returned ip is an internal one and can't be connected to from outside. The solution is to explicitly set the host ip to be registered in ZK by setting the "hostname" property in server.properties. In another rare case where the binding host/port is different from the host/port for client connection, you can set advertised.host.name and advertised.port for client connection.


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 : Comment 0

티스토리 툴바