2016年07月13日

Kafka - Zookeeperからbrokerの一覧を取得する(Python)

さらっと一覧を出したかったのでPythonのコードを書く。

Stackoverflowによるとzookeeperから取っていたので、多分、こんな感じで良いのだと思う。

import kazoo, json

# 参照だけなのでread_onlyで起動しておく
zk = kazoo.client.KazooClient(hosts='127.0.0.1:2181',  read_only=True)
zk.start()

# broker idの一覧取得
brokers = zk.get_children('/brokers/ids')
  #=> ['1005', '1004', '1003', '1002', '1001']

# broker一覧の表示
for broker_id in brokers:
    broker, stat = zk.get('/brokers/ids/' + broker_id)
    broker = json.loads(broker.decode('utf-8'))
    print(broker_id, '{0}:{1}'.format(broker['host'], broker['port']))