【问题标题】:Kafka replication issue卡夫卡复制问题
【发布时间】:2022-02-07 23:38:23
【问题描述】:

我正在使用 3 经纪人卡夫卡。 如果我停止第三个节点:没问题,我可以从节点 1 或 2 消耗 LOGS。 如果我停止第二个节点:没问题,我可以从节点 1 或 3 消耗 LOGS。 如果我停止第一个节点:我无法消费任何东西。

当我重新启动 kafka-runner service 。日志在这里并且写得正确。

我的主题配置是: 主题:log_topic TopicId:xxx PartitionCount:32 ReplicationFactor:3 配置:segment.bytes=1073741824,retention.ms=7200000 主题:log_topic 分区:0 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:1 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:2 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:3 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:4 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:5 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:6 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:7 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:8 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:9 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:10 领导者:2 副本:2,3,1 Isr:2,3,1 主题:log_topic 分区:11 领导者:3 副本:3,1,2 Isr:2,3,1 主题:log_topic 分区:12 领导者:3 副本:1,3,2 Isr:2,3,1 主题:log_topic 分区:13 领导者:2 副本:2,1,3 Isr:2,3,1 主题:log_topic 分区:14 领导者:3 副本:3,2,1 Isr:2,3,1 主题:log_topic 分区:15 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:16 领导者:2 副本:2,3,1 Isr:2,3,1 主题:log_topic 分区:17 领导者:3 副本:3,1,2 Isr:2,3,1 主题:log_topic 分区:18 领导者:3 副本:1,3,2 Isr:2,3,1 主题:log_topic 分区:19 领导者:2 副本:2,1,3 Isr:2,3,1 主题:log_topic 分区:20 领导者:3 副本:3,2,1 Isr:2,3,1 主题:log_topic 分区:21 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:22 领导者:2 副本:2,3,1 Isr:2,3,1 主题:log_topic 分区:23 领导者:3 副本:3,1,2 Isr:2,3,1 主题:log_topic 分区:24 领导者:3 副本:1,3,2 Isr:2,3,1 主题:log_topic 分区:25 领导者:2 副本:2,1,3 Isr:2,3,1 主题:log_topic 分区:26 领导者:3 副本:3,2,1 Isr:2,3,1 主题:log_topic 分区:27 领导者:2 副本:1,2,3 Isr:2,3,1 主题:log_topic 分区:28 领导者:2 副本:2,3,1 Isr:2,3,1 主题:log_topic 分区:29 领导者:3 副本:3,1,2 Isr:2,3,1 主题:log_topic 分区:30 领导者:3 副本:1,3,2 Isr:2,3,1 主题:log_topic 分区:31 领导者:2 副本:2,1,3 Isr:2,3,1

当我停止领导节点时。领导者正确更换。

有什么想法吗?

【问题讨论】:

    标签: apache-kafka replication


    【解决方案1】:

    这似乎是 __consumer_offsets 主题的配置问题。

    _consumer_offsets 用于存储有关每个主题的已提交偏移量的信息:每组消费者的分区(groupID)

    每当组中的消费者从 kafka 读取数据时,它会定期存储该点的信息,直到数据被读取到一个名为 __consumer_offsets 的特殊主题中。这样做是为了让消费者可以在失败的情况下从上一个位置恢复。

    问题

    __consumer_offsets 主题的复制因子将设置为 1,并且该主题的所有分区也将存在于代理 1 中。

    您可以描述 __consumer_offsets 主题以在上面进行验证。 如果是这种情况,那么解决问题的最简单方法是删除 __consumer_offsets 主题并使用所需的复制因子重新创建它。

    如果不能选择删除,请按照以下线程中的说明进行操作

    How to change the number of replicas of a Kafka topic?

    【讨论】:

    • 已修复:__consumer_offsets 设置为一个并且位于第一个节点上。我将检查谁在服务器属性中定义它。我用执行命令更改了属性。非常感谢
    【解决方案2】:

    确保您的 __consumer_offsets 主题 具有三个副本,并且不仅托管在代理 1 上。默认情况下,它只有 1 个副本,如在 server.properties 中建立的那样

    【讨论】:

      猜你喜欢
      • 2017-01-16
      • 2018-01-18
      • 1970-01-01
      • 2013-01-07
      • 2018-04-16
      • 2022-07-13
      • 2020-12-18
      • 2019-03-09
      相关资源
      最近更新 更多