一、消息传递语义:三种,至少一次,至多一次,精确一次
1、at lest once:消息不丢,但可能重复
2、at most once:消息会丢,但不会重复
3、Exactly Once:消息不丢,也不重复。
二、数据一致性保证:保证消息不丢、消息不重复
消息不丢:副本机制+ack,可以保证消息不丢。
数据重复:brocker保存了消息之后,在发送ack之前宕机了,producer认为消息没有发送成功进行重试,导致数据重复。
数据乱序:前一条消息发送失败,后一条消息发送成功,前一条又重试,成功了,导致数据乱序。
三、消息一致性保证:主要就是保证Exactly Once,即:数据不丢、数据不重复
1、0.11之前的kafka版本:保证消息丢,要在消息发送端和消费端都要进行保证。
(1)
来源:https://www.cnblogs.com/guoyu1/p/12023264.html