【问题标题】:Google Cloud Engine: PubSub instead of RabbitMQ谷歌云引擎:PubSub 而不是 RabbitMQ
【发布时间】:2018-02-09 05:25:42
【问题描述】:

我的项目具有在 Google Cloud 中运行的微服务器架构。我正在考虑从使用 RabbitMQ 的容器转移到 PubSub 引擎。

问题是:可以一条一条接收消息吗?我的代码是用 Go 编写的,docs

回调被多个 goroutines 并发调用, 最大化吞吐量。

但是可以调用多少个 goroutine?如何设置允许的最大值?例如。我的一名工作人员使用第三方 API,每个 IP 只允许一个连接,因此我只能及时为该工作人员执行一项任务。

【问题讨论】:

  • 这个问题可能会因为离题而被关闭。该站点是关于特定于代码的问题,而不是架构/技术决策。核心思想是从主题中拉下 1 条消息,回调应用到该消息。那个电话看起来像go callback(msg)。同时,另一条消息可能可用,为什么要等待回调返回?您可以通过在回调中添加互斥锁来强制执行此操作,并且每次都获得一个锁,但这很愚蠢
  • 是的,就是这样。但这不是架构决定。问题是 PubSub 是如何真正工作的,因为文档中并不清楚。

标签: google-app-engine go google-cloud-pubsub


【解决方案1】:

正确的解决方案是 App Engine 任务拉取队列

https://cloud.google.com/appengine/docs/standard/go/taskqueue/overview-pull

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多