美文网首页
Kafka生产者事务和幂等

Kafka生产者事务和幂等

作者: 为你变乖_09e6 | 来源:发表于2018-06-19 10:31 被阅读0次

    本文概览:在Kafka 0.11.0.0引入了EOS(exactly once semantics,精确一次处理语义)的特性,这个特性包括kafka幂等性和kafka事务两个属性。本小节对这个属性进行介绍。

    1 生产者幂等性

    1.1 引入

    幂等性引入目的:

    生产者重复生产消息。生产者进行retry会产生重试时,会重复产生消息。有了幂等性之后,在进行retry重试时,只会生成一个消息。

    1.2 幂等性实现

    1.2.1 PID 和 Sequence Number

    为了实现Producer的幂等性,Kafka引入了Producer ID(即PID)和Sequence Number。

    PID。每个新的Producer在初始化的时候会被分配一个唯一的PID,这个PID对用户是不可见的。

    Sequence Numbler。(对于每个PID,该Producer发送数据的每个都对应一个从0开始单调递增的Sequence Number。

    Broker端在缓存中保存了这seq number,对于接收的每条消息,如果其序号比Broker缓存中序号大于1则接受它,否则将其丢弃。这样就可以实现了消息重复提交了。但是,只能保证单个Producer对于同一个<Topic,Partition>的Exactly Once语义。不能保证同一个Producer一个topic不同的partion幂等。

    实现幂等之后

    1.2.2 生成PID的流程

    在执行创建事务时,如下

    相关文章

      网友评论

          本文标题:Kafka生产者事务和幂等

          本文链接:https://www.haomeiwen.com/subject/vlfaeftx.html