kafka配置参数的特别注意点
Kafka的Replica
概念
kafka的replica指的是消息的备份,为了保证kafka的高可用(当leader节点挂了之后,kafka依然能提供服务)kafka提供了备份的功能。这个备份是针对partition的。
可以通过 default.replication.factor 对replica的数目进行配置,默认值为1,表示不对topic进行备份。如果配置为2,表示除了leader节点,对于topic里的每一个partition,都会有一个额外的备份。
replica分配
为了起到备份的效果,简单设想下,如果让我们来分配replica,我们会怎么分配?
1)replica与所备份的节点不能再一台机器上,否则就起不到备份的效果
2)replica尽量均匀的分布在集群机器上,如果replica全部都在某几台机器上,那么一旦这台机器挂了,会丢失多个partition的备份
假设有3个broker、一个topic1、topic1有3个partition,default.replication.factor被设置为2,可能会这样分配
简单的replica分配示意图(圆角矩形代表replica)
这种分配保证了,任何一台机器挂掉,kafka集群依然有备份可用。