使用单个端点的多区域Kafka部署



我正在尝试建立多区域kafka集群,通过添加额外的代理和额外的集群可以轻松扩展。为了避免生产者不得不担心添加新的集群,有一种方法可以使用单个(或几个固定的(端点来公开Kafka,这样最终用户就不必担心在后台进行的更改。

目前,该设置依赖于AWS MSK提供的服务,我正在尝试遵循此处描述的设置https://aws.amazon.com/blogs/big-data/how-goldman-sachs-builds-cross-account-connectivity-to-their-amazon-msk-clusters-with-aws-privatelink/.与其向AWS中的另一个帐户公开,不如使用一个URL后面有多个集群的公共域向互联网公开。我在想是否可以使用路由53来控制到集群的流量,在那里我可以根据需要进行负载平衡(例如100/0或50/50(。到目前为止,我已经使用目标组(启用了健康检查(设置了NLB,但到目前为止还无法向Kafka发送任何事件。

请帮助我理解:

  1. 如果可以进行此设置
  2. 如果没有,最好的替代方案是什么(我不想使用镜像生成器在2个集群中复制数据,因为它不能解决从底层集群中抽象客户端的问题(

我的后备方案是从应用程序中的每个集群添加代理,并在添加其他集群时通知管理这些应用程序的团队。

是的,Route53可以用于引导客户端,这样他们就不需要提供单独的代理地址,客户端必须通过其advertised.listeners连接到这些单独的代理。您不希望在每个代理上公布相同的NLB/R53地址,因为这将导致递归DNS请求。

在MSK、Confluent Cloud或类似的托管解决方案中,您已经获得了这样一个引导地址。

你不应该创建一个";拉伸簇";由于网络延迟高,特别是在使用Zookeeper的情况下,默认超时无法很好地处理。甚至不确定MSK是否允许您以这种方式配置群集。。。

最新更新