微信商城网站建设视频,科技部网站,深圳外贸公司待遇怎么样,wordpress首页文件是哪个在这里插入图片描述
我们已经了解到#xff0c;复习一下 创建topic时#xff0c;可以指定副本因子 repilication-factor 3 表示分区的副本数#xff0c;包括Leader分区副本和follower分区副本不要超过broker的数量#xff0c;尽量保证一个分区的副本均匀分散不同的broker…在这里插入图片描述
我们已经了解到复习一下 创建topic时可以指定副本因子 repilication-factor 3 表示分区的副本数包括Leader分区副本和follower分区副本不要超过broker的数量尽量保证一个分区的副本均匀分散不同的broker上第一个副本通过轮询的方式分配broker从broker列表中随机位置开始轮询生成一个随机数选定第一个broker然后开始逐个轮询broker放副本实现高可用 Leader 副本只有一个负责读写其他节点都是Follower副本 Producer 只把消息发送到Leader分区Follower副本负责从Leader同步数据 ISR 同步副本列表 包含Leader 怎么样算同步呢replica.lag.max.messages 默认4000条Follower消息已经滞后Leader4000条即踢出ISR新版本已经取消该规则replica.lag.max.ms 默认10000ms, 10s内Follower 还没有向Leader发送fetch请求即踢出ISR 新版本只通过该规则识别有效副本当Follower副本将Leader副本LEO之前的所有消息都同步时认为该副本已经追赶上Leader副本更新该副本的lastCaughtUpTimeMs 最后拉取数据的时间戳ReplicaManager 副本管理器 会启动一个定时任务定时任务定时监测 当前时间 与 lastCaughtUpTimeMs 的差值 是否大于replica.lag.max.ms 值大于即说明当前副本失效踢出ISR 每条消息都带时间戳生产者不带的话broker也会给消息生成时间戳当查找消息时就是根据偏移了时间戳 为了保证可靠性可以设置确认机制ack all Producer将消息发送给LeaderLeader会等到ISR中所有Follower同步数据发送ackLeader 再commitLeader再向Producer发送ack保证生产者发送的消息实际写入所有副本
什么情况会导致副本失效呢
Follower副本进程卡住一段时间内没有向Leader副本发起请求比如Follower副本所在的broker内存满了频繁发起Full GC我们知道Full GC时会STWstop the world 啥也干不了了Follower 副本进程同步过慢网络或者IO开销过大或机器性能问题导致Follower在一段时间内无法赶上Leader改变副本因子比如增加一个副本新增副本在同步Leader数据时也会一直处于失效状态Follower节点由于宕机下线了后又上线在追赶上Leader副本之前也处于失效状态