增加EventGrid的事件大小,以防止413 Payload Too Large

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

发布到 Azure EventGrid 实例的某些消息会导致413 Payload Too Large 错误。 文档对此非常清楚

将事件发布到事件网格主题时,数组的总大小最多可达 1 MB。数组中的每个事件限制为 64 KB。如果事件或数组大于大小限制,您将收到响应 413 Payload Too Large。

不幸的是,我遇到这个问题为时已晚,直到我在生产中遇到错误时才意识到这个事件大小限制。减小主体尺寸是可行的方法,因为我知道消息的占用空间应该很小。大多数都是这样。但对于少数失败的消息,需要进行大量的管道和架构更改。

在此之前,Azure EventGrid 中是否有办法合理增加 64kb 限制(例如增加到 128kb),尽管需要设置、更高的计划或解决方法?直到可以通过代码更改正确覆盖这一点。

azure azure-eventgrid
3个回答
2
投票

截至 2019 年 5 月底,正式宣布,事件网格现在支持大小高达 1MB 的事件。为了使用公告规定:

...无需更改配置,这将适用于现有的事件订阅。要尝试一下,只需推送更大的事件即可。 64 KB 以下的所有内容仍将包含在我们的 GA SLA 范围内。

这得到了现在正式提到的文档的支持:

... 在正式版 (GA) 中支持 64 KB。目前正在预览对 1 MB 的支持。

虽然还没有正式发布,但它非常有前途并且已经可用。这回答了我原来的问题。


1
投票

1MB 限制是硬限制。你无法改变这一点。您可以使用声明检查模式将事件数据卸载到存储并在收到消息时读取它。


0
投票

我同意 Sean 关于使用 ClaimCheck 模式的观点。我在大型 EDA 领域工作了 20 年,并且一直强调需要保持事件消息小而灵活(无论技术平台如何)。我认为在事件有效负载中携带指向 blob 的指针(例如)仍然是很好的做法。不过,我很想了解为什么 MS 决定将其限制提高到 1MB。当架构师试图说服其他人相信“小而灵活的事件”原则时,这只会让架构师的工作变得更加困难。

© www.soinside.com 2019 - 2024. All rights reserved.