【问题标题】:SQL Server to Event hub - event duplicationSQL Server 到事件中心 - 事件复制
【发布时间】:2019-01-27 20:01:01
【问题描述】:

我的应用程序使用来自事件中心的事件。事件中心由 Azure SQL Server 数据库填充。然后,单个消费者使用来自集线器的事件。

据我了解,事件中心上的事件可能会重复(因为事件中心使用“至少一次”策略)。例如,在 DB 上执行一次的 SQL 查询可能会多次驻留在事件中心(由于某些通信失败 + 重试)

我的问题是:

  1. 我是否正确(单个 SQL Server 事件可能不止一次驻留在事件中心)?如果是这样,这些重复的 SQL Server 事件是否可以驻留在不同的分区上?

  2. 如何识别重复的事件(因为每个 SQL Server 事件中都没有“消息 ID”字段)?

非常感谢,

艾坦。

【问题讨论】:

    标签: sql-server duplicates azure-eventhub


    【解决方案1】:

    1.由于负载均衡因素,您的重复事件可能驻留在相同或不同的分区上

    2.要检测重复事件,您可以使用序列号和partitionkey 的组合作为比较因子,因为事件的序列号在分区内是唯一的。

    【讨论】:

      【解决方案2】:

      您的数据复制到事件中心的方式将决定您需要在此处使用的策略...见下文。

      1. 这取决于数据是如何发送到事件中心的,而重复的记录是否会在不同的分区中。如果将数据发送到事件中心的代码设置了PartitionKey,并且每次发送记录时PartitionKey 都相同,则重复的记录将驻留在同一分区中。

      2. 为了确定重复项,您需要一些唯一 ID(或字段组合以创建唯一 ID)对于同一条记录始终相同。如果排序很重要,则唯一 ID 通常用作 PartitionKey。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-08
        • 1970-01-01
        • 1970-01-01
        • 2017-08-29
        相关资源
        最近更新 更多