是的,有。kafka允许您通过添加代理进行扩展。当您将kafka集群与单个代理一起使用时,所有分区都驻留在该单个代理上。但是当你有多个经纪人时,Kafka会在他们之间分割分区。那么,经纪人 A 可能被选为分区领导 1 以及 2 你的主题,和经纪人 B 分区负责人 3 . 因此,当您将消息发布到主题时,客户机将在两个代理上的不同分区之间分割消息。 注意,我还提到了领导人选举。向kafka集群添加代理可以实现复制。kafka使用zookeeper为每个分区选举一个领导者,正如我在示例中提到的。一旦选择了一个引导者,客户机就会在分区之间分割消息,并将每条消息发送给相应分区的引导者。根据主题配置,领导者可以同步地将消息复制到备份。在我的例子中,如果主题的复制因子是 2 然后是经纪人 A 将同步复制分区的消息 1 以及 2 经纪人 B 经纪人 B 将同步复制分区的消息 3 经纪人 A . 所以,这就是说添加代理可以同时提供可伸缩性和容错性。
1条答案
按热度按时间jjjwad0x1#
是的,有。kafka允许您通过添加代理进行扩展。当您将kafka集群与单个代理一起使用时,所有分区都驻留在该单个代理上。但是当你有多个经纪人时,Kafka会在他们之间分割分区。那么,经纪人
A
可能被选为分区领导1
以及2
你的主题,和经纪人B
分区负责人3
. 因此,当您将消息发布到主题时,客户机将在两个代理上的不同分区之间分割消息。注意,我还提到了领导人选举。向kafka集群添加代理可以实现复制。kafka使用zookeeper为每个分区选举一个领导者,正如我在示例中提到的。一旦选择了一个引导者,客户机就会在分区之间分割消息,并将每条消息发送给相应分区的引导者。根据主题配置,领导者可以同步地将消息复制到备份。在我的例子中,如果主题的复制因子是
2
然后是经纪人A
将同步复制分区的消息1
以及2
经纪人B
经纪人B
将同步复制分区的消息3
经纪人A
.所以,这就是说添加代理可以同时提供可伸缩性和容错性。