Apache kafka 卡夫卡集群增加副本因子不';行不通

Apache kafka 卡夫卡集群增加副本因子不';行不通,apache-kafka,kafka-cluster,Apache Kafka,Kafka Cluster,您好,我在执行本文档中的步骤时遇到了一个奇怪的问题,即增加卡夫卡的复制系数: 该症状看起来副本因子增加根本不起作用 请帮忙 我的卡夫卡设置是 卡夫卡版本:卡夫卡2.12-2.1.0 服务器:主机名服务器-0(192.168.0.1) 卡夫卡代理Id:0 卡夫卡港:9092 动物园管理员端口:2181 服务器:主机名服务器-1(192.168.0.2) 卡夫卡经纪人Id:1 卡夫卡港:9092 服务器1上没有Zookeeper 话题 主题数量:1 主题名称:数据 分区数:1 数据主题仅

您好,我在执行本文档中的步骤时遇到了一个奇怪的问题,即增加卡夫卡的复制系数:

该症状看起来副本因子增加根本不起作用

请帮忙

我的卡夫卡设置是

卡夫卡版本:卡夫卡2.12-2.1.0

服务器:主机名服务器-0(192.168.0.1)

  • 卡夫卡代理Id:0
  • 卡夫卡港:9092
  • 动物园管理员端口:2181
服务器:主机名服务器-1(192.168.0.2)

  • 卡夫卡经纪人Id:1
  • 卡夫卡港:9092
  • 服务器1上没有Zookeeper
话题

  • 主题数量:1
  • 主题名称:数据
  • 分区数:1
数据主题仅首先使用服务器-0的副本系数1创建

bin/kafka-topics.sh--create--zookeeper localhost:2181--replication factor 1--partitions 1--topic DATA

结果看起来像

bin/kafka-topics.sh--zookeer localhost:2181--description--topic数据
主题:数据分区计数:1复制因子:1配置:
主题:数据分区:0领导者:0副本:0 Isr:0

创建主题后,我生成了一些测试消息

bin/kafka-console-producer.sh--代理列表localhost:9092--主题数据
信息1
消息2

然后,通过仅在服务器-0中运行命令,主题数据的副本系数增加到2

下面的json文件与Kafka-reassign-partitions.sh一起使用,以增加副本系数

{
“版本”:1,
“分区”:[{“主题”:“数据”,“分区”:0,“副本”:[0,1]}]
}

命令行:

bin/kafka-reassign-partitions.sh--zookeeper localhost:2181--重新分配json文件topics-to-expand.json--执行

从表面上看,通过描述主题,结果看起来不错

bin/kafka-topics.sh--zookeer localhost:2181--description--topic数据
主题:数据分区计数:1复制因子:2配置:
主题:数据分区:0领导者:0副本:0,1 Isr:0,1

我在这里生成了更多的测试消息

bin/kafka-console-producer.sh--代理列表localhost:9092--主题数据
信息3
消息4

但是,当我尝试从服务器1进行测试时,出现了问题

现在,我通过

kill-9[kafka-pid]

当我从server-1运行控制台使用者时,问题就出现了

bin/kafka-console-consumer.sh--引导服务器localhost:9092--主题数据--从头开始

没有消息显示,控制台只是在空白屏幕上阻塞

我认为根据文档,我应该能够看到这些消息,因为复制副本是同步的?没有

描述主题显示

bin/kafka-topics.sh--zookeeper服务器-0:2181--description--topic数据
主题:数据分区计数:1复制因子:2配置:
主题:数据分区:0领导者:1副本:0,1 Isr:1

然后我从server-0重新启动了kafka进程,消费者控制台屏幕突然显示了历史上的所有消息


信息1
信息2
信息3
信息4

服务器1的使用者似乎没有在本地使用服务器1的任何数据,因为主题数据没有复制到服务器1。相反,它仍然等待server-0返回以提供数据。甚至服务器1也被标记为leader

有人能重复我的问题吗?
我想附加我的属性,但我不知道如何在stackoverflow中附加文件。很抱歉…

受到这篇文章的启发,我找到了原因

我出现上述症状的原因是因为default
offset.topic.replication.factor=3
,但集群中只有2个代理(节点)。当卡夫卡第一次创建
\uu consumer\u offset
主题时,它会自动返回到
offset.topic.replication.factor=1
(yaks)


在属性文件中更改offset.topic.replication.factor=2可以解决上述问题。(是测试!)

服务器1在哪里运行?看起来您正试图在本地主机上同时运行:9092?server-0和server-1是两个独立的amazon ec实例,您可以将它们看作192.168.0.1和192.168.0.2。卡夫卡进程运行在裸体服务器上,没有涉及docker容器。你真的不应该立即
kill-9
任何进程。。。只需
kill pid
就可以优雅地关闭它,如果它没有停止,那么-9它可能会重复