我的组织有一个AWS托管的Spring Boot应用程序,其中Apache Kafka当前正在促进约50个主题的消息交换(“云应用程序”)。在客户设施(物理位置)内,我们有一台处理机,可以处理来自云的逻辑和命令。所有客户都有自己的本地计算机。希望允许客户端/云使用相同的Kafka主题,但不允许一种客户端形式接收其他主题。
[许多Kafka实例无法缩放。使Kafka能够执行此操作的适当方法是什么?
许多Kafka实例无法缩放
取决于您的管理方式。您可以使用Ansible / Puppet / Chef和Terraform在任何环境中快速设置Kafka集群。
您可以使用MirrorMaker或Kafka Connect将主题从云数据中心拉到“ physical”私有主题中。
但是,最终结果是您[从远程群集中提取数据并进行处理。
禁止一个客户接收其他客户
“其他”是什么?其他数据中心?那将是一个网络规则,而不是IMO的卡夫卡问题。
[其他Kafka主题?您可以将SASL + JAAS设置为具有基本身份验证层。
更多信息-Kafka Security 101(旧帖子,信息可能有些过时)
此方法的可能缺点可能会降低性能,或者可能需要扩展足够大的群集以支持负载并根据需要保留SLA。
计划和计算估算
blog post about partition number optimization
位置:
NumPartitionsPerBroker = 100 x NumOfBrokers x ReplicationFactor
位置:
TotalExpectedPartitions =
(NumTopics x AvgNumParts) x
[(1 + % GrowthTopics) x (1 + % GrowthParts)] ^ TimeInterval
希望这会有所帮助:)