最近搭建了一个 kafka + zookeeper 集群用于记录日志
kafka 配置:
port=19092
host.name=192.168.70.221
zookeeper.connect=192.168.70.224:12181,192.168.70.225:12181,192.168.70.226:12181
zookeeper 配置:
clientPort=12181
server.1=192.168.70.224:12388:13888
server.2=192.168.70.225:12388:13888
server.3=192.168.70.226:12388:13888
以上配置运行都没问题
为了能够直观地查看 kafka 的数据使用了 KafkaOffsetMonitor
KafkaOffsetMonitor 部署在 192.168.70.224 上:
java -cp KafkaOffsetMonitor-assembly-0.2.1.jar \
com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--zk 192.168.70.224:12181,192.168.70.225:12181,192.168.70.226:12181 \
--port 8080 \
--refresh 10.seconds \
--retain 2.days
遇到的问题是:按理说 KafkaOffsetMonitor 的 List of Consumer Groups 项应该展示所有活动的消费者,但它只展示了通过console-consumer(在70.221的shell里使用 bin/console-consumer) 创建的消费者,而没有展示使用kafka-python客户端创建的消费者
kafka-python 客户端代码:
consumer = KafkaConsumer(
bootstrap_servers = '192.168.70.221:19092',
enable_auto_commit = True
)
consumer.subscribe([topic])
for msg in consumer:
print msg
一直在运行,可以打印出记录并消费掉
但在 KafkaOffsetMonitor 没有展示这个消费者,Active Topics Consumers里也并没有这个消费者的记录
已找到原因,kafka0.9.0使用了newconsumerconfigs
Since 0.9.0.0 we have been working on a replacement for our existing simple and high-level consumers. The code is considered beta quality
KafkaOffsetMonitor 使用的仍是旧的接口,so.