网站建设容易学吗,家政服务网站做推广有效果吗,ps如何做网站轮播图,wordpress存储上回书我们讲了#xff0c;生产者发送消息流程解析传送门 那么这篇我们来看下#xff0c;生产者发送消息时几个重要的参数详解 #xff0c;什么是生产者确认机制#xff1f; 什么是ISR#xff1f; 什么是 OSR? 参数#xff1a;
bootstrap.servers #xff1a; Kafka 集… 上回书我们讲了生产者发送消息流程解析传送门 那么这篇我们来看下生产者发送消息时几个重要的参数详解 什么是生产者确认机制 什么是ISR 什么是 OSR? 参数
bootstrap.servers Kafka 集群地址 host1:port1,host2:port2,host3:port3 不需要写Kafka集群中全部的broker地址但是也不要写一个2-3个即可防止节点宕机时集群不可用 key.serializer: key 的序列化器 指定key怎么转换成字节数组
value.serializer: value的序列化器 指定value怎么转换成字节数组
compression type: 默认值none对批次消息进行压缩的方式gzipsnappy、lz4等
retries : 设置重试次数消息重试存在乱序的可能 max.in.flight.requests.per.connection 1 可以解决乱序问题对于当前连接有一个等待确认的消息不会再发送后面消息即确认一个发送一个保证消息的有序性
什么是生产者确认机制 我们在生产者发送消息时可以指定acks参数值来决定收到消息发送后什么样的确认即可继续发送后面的消息 acks 生产者发送消息确认机制 acks 0 : 生产者不等broker确认不断发送消息发送消息快允许丢消息只要将消息放到了socket的缓冲区就认为消息已发送成功 acks 1: 默认值允许少量消息丢失broker上leader分区写入消息即返回生产者消息确认不等待follower副本分区的确认这种情况下存在消息丢失的风险 acks all : 确保消息不丢失最强可用性保证所有(ISR)同步副本分区都同步成功消息才返回生产者确认消息
什么是ISR 什么是 OSR?
ISR (In-Sync Replicas): 同步副本
在一定时间内和leader保持数据同步的副本列表这句话可以看到副本保持在ISR集合中需要两个条件一定时间内 和 与leader副本保持数据同步 1、rerplica.lag.time.max.ms10000 参数设置follower副本向ISR发送心跳的最大延迟时间默认10s 也就是说10s内follower还没有向leader去同步数据就会认为这个副本不行了将它踢出ISR 2、rerplica.lag.max.messages4000 参数设置消息的最大延迟条数就是如果follower比leader消息数少4000条以上就认为这个副本不行了将它踢出ISR 在Kafka高版本中取消了条件2的限制
OSR (Out-of-Sync Replicas): 非同步副本
从上面ISR中剔除的副本将会被放到OSR中当OSR中副本满足ISR的条件会重新加入到ISR中
值得注意的是上面生产者确认机制中说到的副本同步指的是ISR中的副本并不包括OSR中的副本