淘客网站app建设,长沙旅游商贸职业技术学院,初学者想学网站建设,制作网站的最新软件是什么ISR 上节我们涉及到ISR (In-Sync Replicas)#xff0c;这个是指副本同步队列。副本数对Kafka的吞吐率是有一定的影响#xff0c;但极大的增强了可用性。默认情况下Kafka的replica数量为1#xff0c;即每个partition都有一个唯一的leader#xff0c;为了确保消息的可靠性这个是指副本同步队列。副本数对Kafka的吞吐率是有一定的影响但极大的增强了可用性。默认情况下Kafka的replica数量为1即每个partition都有一个唯一的leader为了确保消息的可靠性通常应用中将其值(由broker的参数offsets.topic.replication.factor指定)大小设置为大于1比如3。 所有的副本replicas统称为Assigned Replicas即AR。ISR是AR中的一个子集由leader维护ISR列表follower从leader同步数据有一些延迟包括延迟时间replica.lag.time.max.ms和延迟条数replica.lag.max.messages两个维度, 当前最新的版本0.10.x中只支持replica.lag.time.max.ms这个维度任意一个超过阈值都会把follower剔除出ISR, 存入OSROutof-Sync Replicas列表新加入的follower也会先存放在OSR中。ARISROSR。
Kafka 0.9.0.0版本后移除了replica.lag.max.messages参数只保留了replica.lag.time.max.ms作为ISR中副本管理的参数。为什么这样做呢replica.lag.max.messages表示当前某个副本落后leader的消息数量超过了这个参数的值那么leader就会把follower从ISR中删除。假设设置replica.lag.max.messages4那么如果producer一次传送至broker的消息数量都小于4条时因为在leader接受到producer发送的消息之后而follower副本开始拉取这些消息之前follower落后leader的消息数不会超过4条消息故此没有follower移出ISR所以这时候replica.lag.max.message的设置似乎是合理的。但是producer发起瞬时高峰流量producer一次发送的消息超过4条时也就是超过replica.lag.max.messages此时follower都会被认为是与leader副本不同步了从而被踢出了ISR。但实际上这些follower都是存活状态的且没有性能问题。那么在之后追上leader,并被重新加入了ISR。于是就会出现它们不断地剔出ISR然后重新回归ISR这无疑增加了无谓的性能损耗。而且这个参数是broker全局的。设置太大了影响真正“落后”follower的移除设置的太小了导致follower的频繁进出。无法给定一个合适的replica.lag.max.messages的值故此新版本的Kafka移除了这个参数。