负载平衡1主题Kafka群集

时间:2017-05-25 19:26:32

标签: apache-kafka

我们正在设计一个Kafka集群(至少3个节点),它将处理来自Web服务器阵列的事件。由于日志大致相同,我们计划仅创建一个主题(比如 - webevents)

我们期望来自服务器的大量流量。由于只有一个主题,因此将有一个领导经纪人。在这种情况下,群集如何平衡高流量?所有写入请求将始终始终路由到领导代理,其他节点可能未得到充分利用。

外部硬件平衡器是否有助于解决此问题?或者,Kafka配置是否可以帮助在1主题集群上均匀分配写请求?

谢谢, Sharod

1 个答案:

答案 0 :(得分:16)

简短回答:一个主题可能有多个分区,每个分区,而不是主题,都有一个领导者。领导者在经纪人中平均分配。因此,如果您的主题中有多个分区,那么您将拥有多个领导者,并且您的写作将在经纪人之间平均分配。

您将拥有一个包含大量分区的主题,您可以复制分区以获得数据的高可用性/持久性。

每个代理将保持均匀分布的分区数,并且每个分区可以是主题的领导者或副本。 Kafka生产者(在您的Web服务器中运行的Kafka客户端)写入单个领导者,这提供了一种负载平衡生产的方法,以便每个写入可以由单独的代理和机器提供服务。

生产者执行负载平衡,为每条消息选择目标分区。它可以基于消息密钥完成,因此所有具有相同密钥的消息都会转到同一个分区,或者如果您没有设置消息密钥,则采用循环方式。

enter image description here

看一下this 好帖子。我从那里拿了图。