gpt4 book ai didi

azure - 将大于 256KB 的事件推送到 Azure EventHub

转载 作者:行者123 更新时间:2023-12-04 16:36:54 27 4
gpt4 key购买 nike

我正在使用Azure 事件中心。我计划发送事件并使用 SendBatchAsync。我发现事件中心的限制为 256KB (无论是单独发送还是批量发送)

那么,如果我的数据 > 256KB,处理此问题的最佳实践是什么?我们是否应该单独发送消息(这将保证消息< 256KB)?

此外,如何将事件拆分为 256KB block 并将其发送到事件中心?我查看了 Azure 文档,发现他们建议使用 EventHubClient.CreateBatch,但我没有看到足够的示例。有人可以提供一些模型或示例或步骤,以了解我们如何最终拆分为 256KB 和 SendBatchAsync

这是我所做的(但不考虑 256KB 限制)

await myEventHubClient.SendBatchAsync(
events.Select(
iEvent =>
new EventData(
Encoding.UTF8.GetBytes(JsonConvert.SerializeObject( iEvent ) ) ) ) );

最佳答案

不要尝试将单个有效负载分块到多个消息中,考虑到事件不能保证按顺序到达,可能最终会出现在不同的分区中,并且可能会相隔一段时间到达,因此跟踪和重构会变得极其困难。可以独立于“总线”移除。从规模上看,这变得更具挑战性。

选项 1:如果您的有效负载是文本/json 并且您的消息大小不大于 256kb,请考虑压缩有效负载。您可以从this online tool了解尺寸结果。如果您的有效负载中有大量空格(例如 JSON),您还可以 minify而不是压缩。

选项 2: 将有效负载存储在外部存储中(例如 DocumentDB 或 Blob 存储)。

发送对事件中您的负载的引用。这可以使您的事件保持精简,但您的消费者需要了解如何检索有效负载。一种简单的方法是将有效负载的链接呈现为 URI,显然您可能需要考虑根据事件中心访问策略对有效负载存储进行身份验证和授权,以保持其流畅。

关于azure - 将大于 256KB 的事件推送到 Azure EventHub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46701873/

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