Kafka保证分区消息的顺序,“先入先出”安全
只有当消息被写入分区的全部副本时,才被认为已提交的blog
只要有一个副本是活跃的,已提交的消息就不会丢失同步
消费者只能读取已经提交的消息it
若是一个或多个副本在同步/非同步之间状态快速切换,说明集群内出现问题,一般是JAVA不恰当的垃圾回收配置致使的io
broker安全配置参数:test
复制系数:集群
主题级别复制系数 replication.factor 配置
broker级别复制系数: default.replication.factor 垃圾回收
不彻底的首领选举:请求
unclean.leader.election=true broker级别配置 容许不一样步的副本成为首领,会面临丢失消息的风险
最少同步副本:
min.insync.replicas (主题和broker级别)
发送确认:
ack=0 容易丢失消息
ack=1 也会存在丢失消息的问题
ack=all 不会丢失消息,可是会下降吞吐量
配置生产者重试参数:
broker 返回 LEADER_NOT_AVAILABLE 是一个可重试错误
broker返回 INVALID_CONFIG 是一个不可重试错误
消费者的可靠性配置:
group.id
auto.offset.reset 指定没有偏移量提交时或请求的偏移量在broker上不存在时,消费者会作什么
=earliest 消费者会从分区开始位置读取数据
=latest 消费者从分区末尾开始读取数据
enable.auto.commit 消费者基于任务调度自动提交偏移量
auto.commit.interval.ms 与上一个参数搭配使用,自动提交偏移量的频率