在Kafka处理经纪人

htzpubme  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(442)

我在异步模式下使用kafka producer,但当所有代理都关闭时,它会像sync一样运行,并等待metadata.fetch.timeout.ms过期,对于我的情况是60秒。我的第一个问题,这是正常的行为还是我做错了什么?
因为我的逻辑中的事务最多应该在100毫秒内完成,所以这个超时值对我来说是一个非常大的延迟。也许将metadata.fetch.timeout.ms设置为10 ms可以解决我的问题,但我不确定这对系统有何影响。这是否会导致某个地方的cpu瓶颈或大量消耗?
另一个可能的解决方案可能是在executorservice中生成消息,这使得生成过程真正异步,但我不想让事情变得更复杂。以前有人试过这个吗?
我的最后一个问题是,我可以使用切换机制来禁用生产Kafka,如果所有的经纪人是下降的,并启用,如果所有经纪人是上升。在Kafka有没有什么功能可以解决hearthbeat的问题?
谢谢。

lbsnaicq

lbsnaicq1#

最好的方法是直接挂到zookeeper上。不知道你用什么语言,但应该有一个zookeeper客户端可用。我使用node,它有 node-zookeeper-client . 在node中,您调用first do createClient() ,然后做 getChildren() 在动物园的小路上 /brokers/ids . 至少在node中,您可以在每次id数组更改时设置一个触发器。如果没有孩子,所有的经纪人都会破产。只要有孩子,那就有经纪人了。

相关问题