我们如何在通过 EventARc 触发器创建的云发布订阅中启用排序?
Posted
技术标签:
【中文标题】我们如何在通过 EventARc 触发器创建的云发布订阅中启用排序?【英文标题】:How can we enable ordering in cloud pub sub subscription created via EventARc trigger? 【发布时间】:2021-06-21 18:30:42 【问题描述】:当我们在 Cloud Pub Sub 中创建订阅时,我们可以启用消息排序。但是,当通过 EventArc 创建订阅时,没有启用排序的选项。创建订阅后,无法启用排序。如何在通过 EventARc 触发器创建的云 pub 订阅中启用排序?
【问题讨论】:
【参考方案1】:简短的回答是否定的。
但是,您必须了解 PubSub 上的订购功能是什么。 Pubsub 只能在相同的 ordering-key 上按顺序发送消息。通常,当您收到与同一事物相关的消息(例如与同一 IoT 设备)时就是这种情况。
在 eventarc 的情况下,PubSub 消息基于审计日志,排序键可能是什么?账户邮箱?你想要什么?
【讨论】:
我更关心时间方面的顺序,这意味着更早到达的消息应该更早处理。由于 eventarc 基于审计日志,我假设它是给定的,因为审计是按时间排序的。我目前没有其他订购钥匙。 在这种情况下,大部分时间(不保证,但在正常情况下,不会中断)消息是按创建顺序传递的(因此根据创建时间)。但是,如果您在处理过程中遇到问题,需要重新提交消息,则不保留订单。 Eventarc 不对 PubSub 触发器 cloud.google.com/eventarc/docs/overview 使用 Audit Log 查询,所以理论上 Google 是可以启用它的,但是这很困难,主要是因为在这种情况下它不是 gRPC 流,而是一堆无状态的独立 HTTP 调用。 @guillaumeblaquiere 如果我想使用我的数据中的 ID 作为订购键怎么办? 在这种情况下,您需要按原样获取消息,并在新主题中使用您选择的排序键重新发布它。没有自动翻译。【参考方案2】:如果事件顺序对您的用例很重要,请随时打开功能请求:https://issuetracker.google.com/issues/new?component=1030474&template=0
【讨论】:
以上是关于我们如何在通过 EventARc 触发器创建的云发布订阅中启用排序?的主要内容,如果未能解决你的问题,请参考以下文章