大神好,有几个问题请教:
目前我这边kafka集群5个节点,kafka版本是2.12-2.1.1
下面是几个主要的配置信息如下:
auto.create.topics.enable=false
delete.topic.enable=false
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
default.replication.factor=3
但是集群中有的topic只有两副本,这种配置为啥会没有问题呢?
如果要优化是否应该修改为:
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=2
transaction.state.log.min.isr=1
修改这几个参数后逐节点重启kafka,这个参数会对已有的topic生效吗?
修改配置依次重启,不会改变
已经创建好的topic
,只会对之后新创建的topic生效。副本越多,可用性就越高,允许宕机的节点越多,但是同时,性能就会下降。
你是5个节点,2-3个副本足够了(副本数不要超过3个,超过集群数的一半还可用的话,会有其他的问题,比如写不进去和数据不对等的情况)
另外:
transaction.xxxx
的是事务配置,如果你没用到事务,这些改动不会对你的业务造成影响。事务的副本数也是同上,事务的状态也是要高可用。按你说的,我这边应该是没用到事务,建议修改上面的配置吗?
针对kafka的topic存在二副本和三副本的情况,有推荐的配置吗?
没用到可以不用修改。
如果该kafka集群的业务非常重要,可以默认设置为3副本。
如果只有部分业务重要,可以设置默认2副本,特殊的业务通过命令手动创建3副本,例如:
$ bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 10 --topic test
这个就可以:
auto.create.topics.enable=false delete.topic.enable=false offsets.topic.replication.factor=3 default.replication.factor=3
好的,感谢!
你的答案