kafka可靠性保障:
一 ack 值为-1
二 分区副本大于等于2
三 ISR里应答的最小副本数量大于等于2
kafka数据重复问题:
一 幂等性(默认开启 ,enable.idempotence设置为true即可)
具有<PID,Partition, SeqNumber>相同主键的消息提交时,Broker只会持久化一条。
PID: Kafka每次重启后分配一个
Partition:分区号
Sn:单调递增
幂等性保障单分区单回话内不重复
二 事务
开启事务,必须开启幂等性
对事务Id求模于50的结果确认事务分区。在目标分区内找到对应的事务协调器,对该事务负责
精确一次 = 数据重复避免+ 可靠性 保障
三 kafka数据有序
单分区内有序 多分区,分区与分区间无序
1.x之前:
max.int.flight.requests.per.connection=1
1.x之后:
未开启幂等性:
max.int.flight.requests.per.connection=1
开启了幂等性:
max.int.flight.requests.per.connection=5(根据序列号 保障5个有序)