更新时间:2021年12月06日16时03分 来源:传智教育 浏览次数:
什么是幂等性?用http举例来说,一次或多次请求,得到地响应是一致的(网络超时等问题除外)就是幂等性,换句话说,就是执行多次操作与执行一次操作的影响是一样的。
如果,某个系统是不具备幂等性的,如果用户重复提交了某个表格,就可能会造成不良影响。例如:用户在浏览器上点击了多次提交订单按钮,会在后台生成多个一模一样的订单。
Kafka在生产者生产消息时,如果出现retry时,有可能会一条消息被发送了多次,如果Kafka不具备幂等性的,就有可能会在partition中保存多条一模一样的消息。
配置幂等性:props.put("enable.idempotence",true);
幂等性的原理:
为了实现生产者的幂等性,Kafka引入了 Producer ID(PID)和 Sequence Number的概念。
1.D:每个Producer在初始化时,都会分配一个唯一的PID,这个PID对用户来说,是透明的。
2.equence Number:针对每个生产者(对应PID)发送到指定主题分区的消息都对应一个从0开始递增的Sequence Number。