我对AWS上的Kafka代理群集有疑问 . 现在有一个AWS ELB坐在集群前面,但当我将 生产环境 者或消费者的“bootstrap.servers”属性设置为我的ELB的“A”记录(和正确的端口号)时, 生产环境 者和消费者无法分别生成和消费消息 . 我关闭了我的代理上的所有SSL,并通过PLAINTEXT 9092端口连接,我的ELB将端口1234转发到9092.所以在我的Producer Configs属性中,例如,我将...
bootstrap.servers =(ELB的“A”记录):1234
更多信息:
-
我的ELB协议是TCP / TCP
-
经纪人的"advertised.listeners"属性为PLAINTEXT://(ec2-private-ip):9092
有没有人在ELB背后运行Kafka有什么运气?如果是的话,请帮帮我!
2 回答
恕我直言,不建议在kafka集群中添加额外的SLB .
Kafka集群本质上是分散的,SLB增加了单点故障风险并使集群设置复杂化 .
消息发送和接收是网络滞后敏感的,SLB肯定会降低消息吞吐量 .
您可以使用ELB作为
bootstrap.servers
,但是仍然需要客户端可以直接访问代理 . ELB将用于客户端制定的初始元数据请求,以确定哪些主题分区在哪些代理上,但之后它将使用服务器的主机名(或advertised.listeners
设置,如果您需要自定义它,例如,在EC2实例上可能需要获取服务器的公共IP) .