gpt4 book ai didi

azure - 能否在不丢失检查点的情况下从 Microsoft.Azure.EventHubs 库迁移到 Azure.Messaging.EventHubs?

转载 作者:行者123 更新时间:2023-12-01 21:40:51 28 4
gpt4 key购买 nike

Azure 事件中心发布了一个现代客户端库 (Azure.Messaging.EventHubs),用于读取和写入事件中心。新库应该取代旧库 (Microsoft.Azure.EventHubs),所以我想知道当前使用旧库的现有应用程序的升级路径应该是什么。

更具体地说,切换到新库是否意味着应用程序必须丢失旧版本的检查点?而migration guide提供了升级好处的清晰解释以及代码示例,我找不到任何提及数据丢失的内容。

最佳答案

事实证明,新的 SDK 不使用与旧版本相同的检查点文件格式,并且转换到新库意味着旧版本的检查点将不会得到尊重。新版本将从事件中心的开头开始读取(根据指定的保留时间)。

两个版本的库都使用 Azure Blob 存储来处理检查点和租赁。然而,虽然旧库每个分区使用一个文件,但其中包含 JSON 格式的检查点和所有者信息。例如,分区 0 的名为 0 的文件具有以下内容:

{"Offset":"0","SequenceNumber":0,"PartitionId":"0","Owner":"host-x","Token":<guid>","Epoch":62}

新库为每个分区使用两个文件,每个文件位于单独的文件夹中。这些文件夹名为 ownershipcheckpoint,它们包含每个分区 ID 的文件。所有权文件夹中的文件没有内容,并且所有者 ID 在 blob 的元数据中声明。同样,检查点文件夹中的文件没有内容,进度数据存储在元数据中,位于两个不同的字段中:offsetsequencenumber

此外,新库具有更复杂的文件夹结构:/EventHubsNamespace/EventHubsName/ConsumerGroupName/,而不是旧库中旧的/ConsumerGroupName/结构。

人们可以编写一个脚本来将检查点文件迁移到新格式,因为似乎所有需要的信息都可用,但我还没有对此进行测试。

关于azure - 能否在不丢失检查点的情况下从 Microsoft.Azure.EventHubs 库迁移到 Azure.Messaging.EventHubs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61370590/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com