我们有一个由5个代理组成的集群,并按如下所示配置了server.properties。
listeners = PLAINTEXT:// kafka1:9092
advertised.listeners = PLAINTEXT:// kafka1:9092
我在所有经纪人,生产者和消费者的/ etc / hosts文件中添加了以下条目
“私有:IP:kafka:broker1” kafka1
这在大多数情况下对我们都有效,在配置新使用者时,我们不必记住引导服务器的专用IP。
我想知道这是在卡夫卡经纪人和客户之间进行交流的一种好方法吗?
由于我不是DevOps专家,所以我不确定这是否可能引起隐藏的问题。请对此发表评论。
另一件事是,我看到Kafka经纪人和客户之间的随机断开导致了不同的问题。我只想清除这可能导致问题的可能性。
答案 0 :(得分:2)
我在所有经纪人,生产者和消费者的/ etc / hosts文件中添加了如下所示的条目
这不好。请不要这样做
如果您不能仅通过bootstrap.servers
属性来解析主机,则侦听器不正确。
请阅读this explanation of Kafka Listeners,以获取可能需要的所有详细信息。
在配置新使用者时,我们不必记住引导服务器的私有IP
您可以使用服务发现工具来解决此问题。领事很受欢迎,那么您只需指向kafka.service.consul:9092
,它就会通过DNS的魔力“起作用”。
或者您应该在已经预先配置了至少引导服务器设置的Kafka客户端库上进行标准化,然后在内部将这个“库”发布给开发人员以供使用