Kafka: Obtenha o host do broker do ZooKeeper

Por razões particulares, preciso usar os dois -ConsumerGroup (também conhecido como consumidor de alto nível) eSimpleConsumer (também conhecido como consumidor de baixo nível) para ler em Kafka. ParaConsumerGroup Eu uso a configuração baseada no ZooKeeper e estou completamente satisfeito com ela, masSimpleConsumer requer que os corretores de sementes sejam instanciados.

Não quero manter a lista de ambos - o ZooKeeper e os hosts do broker. Assim, estou procurando uma maneira dedescobrir automaticamente corretores para um tópico específicoZooKeeper.

Por causa de algumas informações indiretas, eucrença esses dados são armazenados no ZooKeeper sob um dos seguintes caminhos:

/brokers/topics/<topic>/partitions/<partition-id>/state/ corretores / ids /

No entanto, quando tento ler dados desses nós, estou recebendo um erro de serialização (estou usandocom.101tec.zkclient por esta):

org.I0Itec.zkclient.exception.ZkMarshallingError: java.io.StreamCorruptedException: cabeçalho de fluxo inválido: 7B226A6D em org.I0Itec.zkclient.serialize.SerializableSerializer.deserialize (SerializableSerializer.java:37) em org.I0derTech. (ZkClient.java:740) em org.I0Itec.zkclient.ZkClient.readData (ZkClient.java:773) em org.I0Itec.zkclient.ZkClient.readData (ZkClient.java:761) em org.I0Itec.zkclient.ZkClient. readData (ZkClient.java:750) em org.I0Itec.zkclient.ZkClient.readData (ZkClient.java:744) ... 64 elided Causado por: java.io.StreamCorruptedException: cabeçalho de fluxo inválido: 7B226A6D em java.io.ObjectInputStream .readStreamHeader (ObjectInputStream.java:804) em java.io.ObjectInputStream. (ObjectInputStream.java:299) em org.I0Itec.zkclient.serialize.TcclAwareObjectIputStream. (TcclAwareObjectIputStream.java:30) em org. SerializableSerializer.deserialize (SerializableSerializer.java:31) ... 69 mais

Posso escrever e ler objetos Java personalizados (por exemplo, Strings) sem nenhum problema, por isso acredito que não é um problema de um cliente, mas uma codificação bastante complicada. Assim, eu quero saber:

Se este é o caminho certo a seguir,como ler esses nós corretamente?Se toda a abordagem estiver errada,qual é o caminho certo?

questionAnswers(5)

yourAnswerToTheQuestion