【问题标题】:Increase EventGrid's event size, to prevent 413 Payload Too Large增加 EventGrid 的事件大小,防止 413 Payload Too Large
【发布时间】:2022-03-12 21:32:14
【问题描述】:

一些发布到 Azure EventGrid 实例的消息会导致 413 Payload Too Large 错误。 docs are quite clear on this

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

不幸的是,我遇到这个问题太晚了,直到我在生产中遇到错误时才知道这个事件大小限制。减小正文大小是要走的路,因为我知道消息的占用空间应该很小。他们中的大多数是。但是对于少数失败的消息,它需要大量的管道和架构更改。

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

【问题讨论】:

    标签: azure azure-eventgrid


    【解决方案1】:

    截至 2019 年 5 月底,officially announced 事件网格现在支持大小最大为 1MB 的事件。为了使用公告状态:

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

    这是由the docs which now formally mention 支持的:

    ...在通用版 (GA) 中支持 64 KB。对 1 MB 的支持目前处于预览阶段。

    虽然还不是 GA,但它非常有前途并且已经可用。这回答了我最初的问题。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-12-25
          • 2019-08-06
          • 1970-01-01
          • 1970-01-01
          • 2022-01-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多