【问题标题】:Route transaction messages to serverless instances将事务消息路由到无服务器实例
【发布时间】:2021-12-07 06:03:54
【问题描述】:

在高吞吐量事务系统的情况下,我们会根据某些条件将事务路由到实例组中的实例,以确保事务一个接一个地处理。例如,可能有一条路由规则表明数据中具有“取消”的事务可能会被路由到实例 C,而“新”可能会被路由到实例 A。这与某些业务逻辑相关。

但是在无服务器世界中,我们无法命名实例,因为我们不知道它在哪里运行以及如何运行。在这种情况下,我们如何实现这种逻辑。还是违背了无服务器范式。

【问题讨论】:

  • @guillaumeblaquiere 的想法有用吗?您是否担心执行顺序或 Cloud Run/functions 运行的无服务器容器的命名?

标签: google-cloud-platform google-cloud-functions serverless google-cloud-run


【解决方案1】:

您可以使用排序键在 PubSub 中发布事件消息。像这样,即使它们不在同一个实例上处理,消息也会按顺序传递。

【讨论】:

  • 1.我将 PubSub 与 Cloud Functions 和 Cloud run 一起使用。云函数触发器中的 Pubsub 订阅是默认创建的,因此以后不提供添加排序键的选项。 Cloud run 使用 event arc 并且没有此功能。 2.假设如果消息A首先出现并触发了一个函数,它触发了实例1,消息B稍后出现并触发实例2。带有消息B的实例2可以更快地完成,因为它更快地获得了资源。有没有更好的处理方法?
  • 您需要创建一个推送订阅。您不能使用直接插入主题的 Cloud Functions,您需要一个 http 函数和一个推送订阅。 EventArc 的同上,您直接使用主题,而不是激活订购键的订阅。使用原始的东西!
猜你喜欢
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-02
  • 2017-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多