【问题标题】:Will new kafka node able to work with a existing topic?新的 kafka 节点能否与现有主题一起工作?
【发布时间】:2020-10-26 17:21:10
【问题描述】:

假设我们有一个三节点 kafka 集群,并且在创建主题时只有两个节点处于活动状态。之后,如果我们将第三个节点带回来,它将能够赶上这个新创建的主题的所有数据。在第三个节点出现后,我尝试关闭另外两个节点,当我描述第三个节点没有充当分区的领导者时。

Topic: test PartitionCount: 6   ReplicationFactor: 2    Configs: segment.bytes=1073741824
Topic: test Partition: 0    Leader: none    Replicas: 0,1   Isr: 0
Topic: test Partition: 1    Leader: none    Replicas: 1,0   Isr: 0
Topic: test Partition: 2    Leader: none    Replicas: 0,1   Isr: 0
Topic: test Partition: 3    Leader: none    Replicas: 1,0   Isr: 0
Topic: test Partition: 4    Leader: none    Replicas: 0,1   Isr: 0
Topic: test Partition: 5    Leader: none    Replicas: 1,0   Isr: 0

它没有显示?

【问题讨论】:

    标签: apache-kafka apache-zookeeper


    【解决方案1】:

    您创建的主题有ReplicationFactor: 2。这意味着只有 2 个经纪人拥有该主题的数据。

    由于您有 2 个代理(0 和 1)在运行,因此这些代理被选为副本。您可以看到所有分区的所有副本都在 0 和 1 上。没有其他 broker 有此主题的数据。

    当您启动第三个代理时,它不会托管此主题的副本。所以它不可能成为领导者。

    如果您希望第三个代理也作为副本,您可以将复制因子扩展为 3,例如以下https://kafka.apache.org/documentation/#basic_ops_increase_replication_factor

    请注意,如果您只运行 2 个代理,您将无法创建复制因子设置为 3 的主题。

    【讨论】:

    • 了解不会将分区扩展到新可用的代理。那我们怎么能说 kafka 是水平可扩展的呢?
    • 它是横向可扩展的,因为您可以添加代理并添加分区以增加集群的容量。您可以使用 Cruise Control github.com/linkedin/cruise-control 等工具来执行您描述的操作
    猜你喜欢
    • 2019-09-05
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    相关资源
    最近更新 更多