apache-kafka - 卡夫卡的入口
问题描述
我们正在探索在 kafka 为我们的每个开发团队实施多租户,这些开发团队将托管在 AWS-EKS 中。
- 为此,最初的思考过程是拥有主题级别的多租户。
- NLB-Nginx-Ingress:每个团队的入口主机路由,并在后端添加所有代理,该团队的所有主题分区领导者都在其中。
- 基于用户等主体通过代理级别的 ACL 进行访问限制。
样品流程:
Ingress 簿记挑战:
- 当 foobar 团队中的某个人创建了一个新主题并且该主题出现在新的代理中时,我们需要将该代理添加到相应入口的后端。
- 如果代理出现故障,则需要再次更新入口。
- 当分区领导因主题删除而消失时,修剪代理。
我在寻找什么: 除了编写一个操作符或应用程序来完成上述任务之外,还有其他更好的方法来实现这一点吗?我也可以接受全新的建议。因为这只是在 POC 阶段。
PS:我是kafka的新手,如果这个交流不适合这个问题,请建议正确的交流发帖。谢谢!
解决方案
首先,ACL 限制是集群级别而不是代理级别,
其次,对于引导过程,您需要从集群中访问至少一个活动代理,它将发送回数据领导者所在的元数据,并且在持续连接时,客户端将相应地连接到代理,
不需要将负载均衡器放在 kafka bootstraping 后面,建议在逗号分隔列表中放置至少两个或更多代理,客户端将连接第一个可用并获取元数据,为了进一步连接,客户端需要能够连接到集群中的所有代理
您可以根据需要使用 ACL 限制委托人(用户)对集群中主题的访问。