三、Kafka副本

2、创建2个分区两个副本

/usr/local/kafka/bin# ./kafka-topics.sh --bootstrap-server 192.168.58.130:9092 --create --topic atguigu2 --partitions 2 --replication-factor 2

在这里插入图片描述
3、查看topic详细信息

/usr/local/kafka/bin# ./kafka-topics.sh --bootstrap-server 192.168.58.130:9092 --describe --topic atguigu2

在这里插入图片描述

2、Follower故障处理细节

在这里插入图片描述
Leader是接收生产者的数据,会先收到数据,所有Follower中的数据都是从Leader中拉取的,由于存在时间差的问题,导致Leader中的数据要多一些,Follower中的数据要少一些。
ISR[0 1 2]:
表示三台服务器正常运行

在这里插入图片描述
LEO(Log End Offset)每个副本的最后一个offset,LEO其实就是最新的offset+1。
HW(High Watermark)所有副本中最小的LEO。

2.1 Follower故障

(1)Follower发生故障后会被临时剔出ISR。
(2)这个期间Leader和Follower继续接收数据,那么对应的HW和LEO就会正常的变化。
在这里插入图片描述
此时接受数据 8 9
HW=8
LWO=9+1

(3)待该Follower恢复后,Follower会读取本地磁盘记录的上次的HW,并将log文件高于HW的部分截取掉,从HW开始向Leader进行同步。

(4)等该Follower的LEO大于等于该Partition的HW,即Follower追上Leader之后,就可以重新加入ISR了。
在这里插入图片描述

2.2 Leader故障

(1)Leader发生故障之后,会从ISR中选出一个新的Leader
(2)为保证多个副本之间的数据一致性,其余的Follower会先将各自的log文件高于HW的部分截掉,然后从新的Leader同步数据。
注意:这只能保证副本之间的数据一致性,并不能保证数据不丢失或者不重复

3、分区副本分配

### Kafka 副本数的配置与作用 Kafka副本机制是其高可用性和数据可靠性的重要保障。副本数的配置直接影响到 Kafka 的容错能力、性能和存储成本。 #### Kafka 副本数的作用 Kafka 副本的主要作用是提高数据的可靠性。通过在多个 Broker 上存储相同的数据副本Kafka 能够在某个 Broker 发生故障时,继续提供数据读写服务[^3]。此外,副本还支持 Kafka 的故障转移机制,确保服务的高可用性。Kafka 中的副本分为 Leader 和 Follower 两种角色,生产者只会将数据发送到 Leader 副本,而 Follower 副本则通过从 Leader 同步数据来保持一致性[^3]。 Kafka副本集合(AR)包括所有分配给某个分区的副本,而 AR 又分为两个子集:ISR(In-Sync Replicas)和 OSR(Out-of-Sync Replicas)。ISR 是与 Leader 保持同步的 Follower 副本集合,而 OSR 是那些由于同步延迟过多而被踢出 ISR 的副本。在 Leader 发生故障时,Kafka 会从 ISR 中选举一个新的 Leader,以确保数据的一致性。 #### Kafka 副本数的配置 在 Kafka 中,副本数是在创建 Topic 时通过 `--replication-factor` 参数进行配置的。例如,以下命令创建了一个具有 3 个分区和 3 个副本Topic: ```bash bin/kafka-topics.sh --zookeeper gw04:2181,gw05:2181,gw06:2181 --create --partitions 3 --replication-factor 3 --topic bms_clean_dwm_es11_yb ``` 一旦 Topic 创建完成,副本数不能直接修改,这是 Kafka 的设计决策之一,主要出于数据一致性、存储和分布式负载均衡的考虑[^2]。 在生产环境中,通常建议将副本数设置为 3,这是一个在容错能力和存储成本之间的良好平衡点。虽然 Kafka 默认的副本数为 1,但为了提高数据可靠性,生产环境一般会配置为 2 个或更多副本。然而,副本数过多会增加磁盘存储空间和网络传输的开销,从而降低系统的整体效率[^1]。 ####
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值