代码之家  ›  专栏  ›  技术社区  ›  user1578872

卡夫卡等量制片人

  •  2
  • user1578872  · 技术社区  · 6 年前

    卡夫卡文件说,同一个制作人会话中的等量制作人是可能的,我无法理解这一点。

    例如,Kafka为每条消息添加序列号,最后一个序列号在Kafka中维护(不确定维护在哪里)。

    它是如何生成序列号的?它保存在哪里?

    当生产商崩溃并再次出现时,为什么它不能保持序列?

    我如何才能使它真正等幂b/w生产者会议?

    谢谢

    1 回复  |  直到 6 年前
        1
  •  3
  •   Mickael Maison    6 年前

    等量生产者只有在生产者过程的生命周期内才有保证。如果它崩溃了,新的等量生产者将有一个不同的producerid,并开始自己的序列。

    序列号仅从0开始,并且每个记录的序列号都是单增长的。如果一个记录未能被传递,它将以其现有的序列号再次发送,以便代理可以对其进行重复数据消除(如果需要)。序列号是每个生产者和每个分区。

    目前,卡夫卡并没有提供一种方式来“继续”一个无关紧要的制片人会议。每次启动一个时,它都会得到一个新的、唯一的producerid(由集群生成)