gpt4 book ai didi

Azure 事件中心更改分区键

转载 作者:行者123 更新时间:2023-12-03 05:07:03 25 4
gpt4 key购买 nike

应用程序在启动时将 EventData.PartitionKey 的值设置为新的 Guid。因此,对于每个新部署,分区键都会发生变化。

我了解事件中心利用哈希机制将消息路由到特定分区。重新生成分区 key 是否会以任何有害的方式阻碍或影响此机制?

我不时注意到,在多次部署后,消息不会出现在事件中心(无论经过多长时间),尽管底层的 EventHubClient.SendBatchAsync 方法不会出现抛出异常。这种行为似乎可以随意纠正。

最佳答案

影响将是:每次您的应用程序重新启动时 - 消息可能会落在完全不同的分区中 - 因为新的 Guid 可能会被散列到不同的 EventHub 分区。

这不会以任何方式损害 EventHub 的性能。您可以根据需要生成任意数量的 PartitionKey。

但是,使用这些事件的应用程序将会受到影响:通常会有一个 Worker 处理单个分区中的事件(EventHubs 分区是事件的规模单位 -处理器处理 EventHub 之外的事件)。当您的应用程序以 Guid1 启动时,它可能会被哈希到由 ProcessorInstance1 处理的 Partition1,但是,当应用程序重新启动时,它会生成 Guid2,它可能会被哈希到由 ProcessorInstance10 处理的 Partition10。任何使用 PartitionKey 的应用程序背后的原则都是关联 - 所有使用相同 PartitionKeyEventData 都会落在相同的位置EventHub 分区。但是,这把 key 被重置了——这违背了整个目的。

如果操作不成功,所有SendBatch操作都会抛出异常。这是基本保证,并且不可能违反 SLA - 如果它不抛出。我相信,从您解释的症状来看,在应用程序部署后,由于新的 Guid 将导致事件登陆不同的分区 - 您可能会从特定分区接收事件,并且可能会丢失而无法看到它们,并且它可以自动更正如果您生成另一个映射到旧分区的 Guid...我强烈建议将 partitionKey 的映射修复为随机Guid。

more on Event Hubs...

关于Azure 事件中心更改分区键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38999025/

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