我有一个关于AWS上的Kafka代理集群的问题。现在有一个AWS ELB坐在集群前面,但是当我将生产者或消费者的“bootstrap.servers”属性设置为我的ELB的“A”记录(和正确的端口号)时,生产者和消费者不能分别产生和使用消息。我已经关闭了我的经纪人的所有SSL,并通过PLAINTEXT 9092端口连接,我的ELB将端口1234转发到9092.因此,在我的Producer Configs属性中,例如,我将拥有...卡夫卡是否支持经纪集群前的ELB?
bootstrap.servers =( “A” ELB的记录):1234
更多信息:
- 我ELB的协议是TCP/TCP
- 我的经纪人 “advertised.listeners” 属性是PLAINTEXT://(EC2 -private-ip):9092
有没有人在ELB后面跑过卡夫卡?如果是这样,请帮助我!
我还是有点困惑。 ELB不通过专用IP与其实例通话,所以我不希望advertised.listeners成为私有IP?我已经尝试了ec2s的公共和私人IP地址,但它们都无法工作。顺便说一句,我正在使用Java的kafka客户端库。 – Mattnv92
运行Kafka的EC2实例可以在单个接口上侦听,但能够接受针对公共和私有IP的流量。我试图得到的是,ELB仅*用于获取关于集群的元数据的初始请求。之后,客户端需要能够直接与每个主题分区的领导代理交谈。如果您试图使用ELB将卡夫卡群集公开为可用,您需要确保每个代理的'advertised.listeners'也可以公开访问。 –
我觉得很愚蠢。所以它实际上是在工作,但ELB报告说实例“无法使用”,因为健康检查失败。它在默认情况下指向80端口,它不是“可以ping通”的。所以ELB并没有将流量路由到任何经纪人。我们有ELB现在在我们的经纪人上ping了Zookeeper端口,它工作得很好!知道它必须是愚蠢的:p。谢谢您的帮助!它肯定揭示了卡夫卡的工作原理,并且我相信在将来会帮助其他人! – Mattnv92