【问题标题】:Does Debezium provide delivery and ordering guarantees?Debezium 是否提供交货和订购保证?
【发布时间】:2020-05-25 04:49:47
【问题描述】:

我计划使用Kafka 制作活动,我需要强有力的交付和订购保证。通过在生产者配置中使用enable.idempotence=true 参数,我可以获得这些保证。

我的问题是:

  1. 如何使用 debezium 实现这一目标?
  2. 这些保证是否默认提供?
  3. 是否可配置?怎么样?

注意:我打算使用Debezium Connector for PostgreSQL

【问题讨论】:

    标签: debezium postgresql apache-kafka apache-kafka-connect debezium


    【解决方案1】:

    传递语义

    保证至少一次交付:

    当所有系统都在正常运行或部分或全部系统正常关闭时,消费应用程序可能会只看到一次。但是,当出现问题时,消费应用程序总是有可能看到至少一次的事件。

    来源:Why must consuming applications expect duplicate events?


    订购保证

    具有强大的订购保证:

    大多数连接器会将单个数据库表的所有事件记录到单个主题。此外,主题内的所有事件都是完全排序的,这意味着所有这些事件的顺序都将保持不变。 (即使失败时事件重复,应用所有事件后的最终结果将保持不变。)

    来源:How are events for a database organized?

    【讨论】:

    • 也许,一个主题内的所有事件在单个分区内都是完全有序的,因此同一主题的不同分区之间没有总顺序,因此如果一个消费者组同时从不同的分区读取,则可能无法维护与数据库日志关联的消费顺序?我是否正确/遗漏了什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 2019-04-28
    • 2014-09-03
    • 2018-02-18
    • 1970-01-01
    相关资源
    最近更新 更多