Как производитель кафки узнает, какие брокеры доступны в zookeeper?

Я установил 3-узловой кластер kafka. Я хочу знать, какие брокеры доступны для клиента-производителя. Есть ли какая-нибудь команда для перечисления брокеров, подключенных к zookeeper?


person Midhun Mathew Sunny    schedule 18.11.2016    source источник


Ответы (1)


Вы можете получить список брокеров через ZooKeeper, перебирая идентификаторы брокера в / brokers / ids, а затем получая информацию о брокере из этих идентификаторов:

ZooKeeper zk = new ZooKeeper("localhost:2181", 10000, null);
List<String> ids = zk.getChildren("/brokers/ids", false);

for (String id : ids) {
   String brokerInfo = new String(zk.getData("/brokers/ids/" + id, false, null));
   System.out.println(id + ": " + brokerInfo);
}
person Nick Vanderhoven    schedule 18.11.2016
comment
Примечание: этот подход поддерживается только для обратной совместимости для старых клиентов и не работает для серверов, настроенных с безопасностью, такой как SASL_SSL. См. issues.apache.org/jira/browse/KAFKA-3948 Более новые подход заключается в анализе и обработке конечных точек, которые включают имя хоста и номер порта, например конечные точки: [SASL_SSL: // kafka01: 9093] и конечные точки: [PLAINTEXT: //127.0.0.1: 9092], - person JulianHarty; 17.01.2018