首页 > 解决方案 > 卡夫卡的入口

问题描述

我们正在探索在 kafka 为我们的每个开发团队实施多租户,这些开发团队将托管在 AWS-EKS 中。

  1. 为此,最初的思考过程是拥有主题级别的多租户。
  2. NLB-Nginx-Ingress:每个团队的入口主机路由,并在后端添加所有代理,该团队的所有主题分区领导者都在其中。
  3. 基于用户等主体通过代理级别的 ACL 进行访问限制。

样品流程:

在此处输入图像描述

Ingress 簿记挑战

  1. 当 foobar 团队中的某个人创建了一个新主题并且该主题出现在新的代理中时,我们需要将该代理添加到相应入口的后端。
  2. 如果代理出现故障,则需要再次更新入口。
  3. 当分区领导因主题删除而消失时,修剪代理。

我在寻找什么: 除了编写一个操作符或应用程序来完成上述任务之外,还有其他更好的方法来实现这一点吗?我也可以接受全新的建议。因为这只是在 POC 阶段。

PS:我是kafka的新手,如果这个交流不适合这个问题,请建议正确的交流发帖。谢谢!

标签: apache-kafka

解决方案


首先,ACL 限制是集群级别而不是代理级别,

其次,对于引导过程,您需要从集群中访问至少一个活动代理,它将发送回数据领导者所在的元数据,并且在持续连接时,客户端将相应地连接到代理,

不需要将负载均衡器放在 kafka bootstraping 后面,建议在逗号分隔列表中放置至少两个或更多代理,客户端将连接第一个可用并获取元数据,为了进一步连接,客户端需要能够连接到集群中的所有代理


您可以根据需要使用 ACL 限制委托人(用户)对集群中主题的访问。


推荐阅读