适用于Kafka代理的AWS网络负载均衡器

时间:2019-12-18 11:38:53

标签: amazon-web-services apache-kafka

我有3个节点的kafka集群(zookeeper也安装在相同的3个节点上)。我不确定是否要在经纪人面前部署AWS NLB。我有3个生产者,即使平均分配给所有3个经纪人,他们也会决定将其分区的位置,等等。我不知道我可以从AWS NLB获得什么好处,以及它的缺点是什么。

1 个答案:

答案 0 :(得分:0)

我也对此进行了研究,但没有找到太多帮助。我最终在经纪人面前放了一个带有TCP目标组的NLB,这就是原因:

  1. 省去一些DNS麻烦。我在NLB A记录上有一个CNAME,这就是我用于引导服务器值的内容。通过将新代理添加到NLB目标组(通过Cloudformation),我可以无缝地水平扩展。由于DNS记录,我现在没有绑定到我们的AWS环境中的任何IP。我还在Zookeeper节点上使用了Route53专用区域,因此代理仅指向所有这些节点共享的总体A记录。
  2. 通过内置的CW监视轻松监视经纪人的健康状况。
  3. 我了解了使用ELB进行SSL卸载的好处,但我并不真正认为这样做有好处,因为代理通讯的客户端仍将是非SSL的。我没有这样做,但是我想列出来。

我尚未对NLB进行任何基准测试,但我不太担心。 IMO,简化的DNS值得。

欢呼

编辑:代理协议不适用于Kafka,因此,如果您希望能够通过源IP限制流量,则在安全组中,必须为NLB目标使用类型“实例”与类型“ ip”小组目标。

https://aws.amazon.com/premiumsupport/knowledge-center/security-group-load-balancer/

使用NLB名称从目标中学到的一课:

https://aws.amazon.com/premiumsupport/knowledge-center/target-connection-fails-load-balancer/

对于这个问题,我只是在任何代理目标上将--bootstrap-server切换为“ localhost”。