数据传递语义
幂等性
1)幂等性原理
2)如何使用幂等性
开启参数 enable.idempotence 默认为 true,false 关闭。
生产者事务:
幂等性只能保障服务器不挂掉的情况下,发送数据是唯一的,假如发送者服务器挂掉了,那么重启之后还是会发送重复的数据,所以需要使用事务。
1)Kafka 事务原理
每一个broker都有一个事务协调器,如何知道本次事务是哪个broker对应的事务协调器呢,有一个算法,如图所示。
2)Kafka 的事务一共有如下 5 个 API
跟java代码中的事务一模一样
try{
begin 开启事务
此处写代码
commit();
}catch(){
// 回滚
rollback();
}