【发布时间】: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