我有一个Kafka经纪人。
my server.properties如下:
offsets.topic.replication.factor=3
default.replication.factor=3
min.insync.replicas=3
我为测试创建了一个主题:
sh kafka-topics.sh --bootstrap-server localhost:9092 --topic test --create replication-factor 1 --config min.insync.replicas=1
主题创建得很好。其描述如下:
Topic: test PartitionCount: 8 ReplicationFactor: 1 Configs: min.insync.replicas=1, segment.bytes=10...
Topic: test Partition: 0 Leader: 1 Replicas: 1 Isr: 1
....
当我的控制台使用者开始工作时,会发生以下错误:
org.apache.kafka.common.errors.NotEnoughReplicasException: The size of the current ISR Set(1) is insufficient to satisfy the min.isr requirement of 3 for partition __ consumer_offsets-1
据我所知,我将min.insync.replicas设置为1,但它只影响数据主题,而不影响消费主题。因此,由于my server.properties具有min.insync.replicase=3设置,因此\u consumer\u offset仍然需要3个副本。
我的理解正确吗??如果是,是否有方法在命令行主题创建中设置\uu consumer\u offset topics的min.insync.replicas?
1条答案
按热度按时间nlejzf6q1#
“我的理解正确吗??”
是的,你的理解是正确的。可以在创建主题时设置配置min.insync.replicas。如果不指定此配置,则将基于代理范围的配置进行设置
min.insync.replicas
在server.properties
.如果是,是否有方法在命令行主题创建中设置\uu consumer\u offset topics的min.insync.replicas
作为主题
__consumer_offsets
是一个内部主题,它将自动创建,使用代理范围的默认值。在这种情况下,您需要更改server.properties文件中的配置:据我所知,集群中只有一个代理。所以有默认设置
3
对于配置offsets.topic.replication.factor
,default.replication.factor
,和min.insync.replicas
将导致依赖于这些代理范围设置的主题出现问题(如您所见)。请不要在不真正了解影响的情况下更改生产集群上的这些设置。这将对数据和用户组的持久性产生影响,因此将默认值设置为
3
.