SQL Server到事件中心 - 事件复制

问题描述 投票:0回答:2

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

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

我的问题是:

  1. 我是否正确(单个SQL Server事件可能不止一次驻留在事件中心上)?如果是这样,这些重复的SQL Server事件是否可以驻留在不同的分区上?
  2. 如何识别重复事件(因为每个SQL Server事件中没有“消息ID”字段)?

非常感谢你,

埃坦。

sql-server duplicates azure-eventhub
2个回答
0
投票

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

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


0
投票

如何将数据复制到事件中心将决定您在此处使用的策略...请参阅下文。

  1. 这取决于数据如何发送到Event Hub,以确定重复的记录是否位于不同的分区中。如果将数据发送到Event Hub的代码设置了PartitionKey,并且每次发送记录时PartitionKey都相同,则重复的记录将驻留在同一分区中。
  2. 为了确定重复项,您需要一些唯一ID(或字段组合来创建唯一ID),对于同一记录,它们始终是相同的。如果排序很重要,则通常将唯一ID用作PartitionKey。
© www.soinside.com 2019 - 2024. All rights reserved.