Google云端引擎:用PubSub代替RabbitMQ

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

问题是:是否可以一一接收消息? 我的代码是用Go编写的,并且文档说</ p> >


多个goroutine同时调用回调,
可以最大化吞吐量。</ p>
</ blockquote>

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

展开原文

原文

My project has microserver architecture working in Google Cloud. I'm thinking about moving from container with RabbitMQ to PubSub engine.

The question is: is it possible to receive messages one by one? My code is written on Go and docs says

The callback is invoked concurrently by multiple goroutines, maximizing throughput.

But how many goroutines can be invoked? How can I set the max allowed? E.g. one of my workers works with third-party API allowing only one connection per IP, so I can have only one task in time for this worker.

doushadu0901
doushadu0901 是的,就是这个想法。但这不是架构决定。问题在于PubSub的真正工作原理,因为尚不清楚文档。
接近 3 年之前 回复
donglu7816
donglu7816 对于SO,这个问题很可能会被关闭。该站点是关于特定于代码的问题,而不是体系结构/技术决策。不过,核心思想是您从该主题中提取了1条消息,并在该消息中应用了回调。该调用看起来像gocallback(msg)。同时,另一条消息可能可用,为什么要等待回调返回?您可以通过在回调函数中添加一个互斥锁来强制执行此操作,并且每次都只获取一个锁,但这很愚蠢。
接近 3 年之前 回复

1个回答



正确的解决方案是App Engine任务提取队列</ p>

https://cloud.google.com/appengine/docs/standard/go/taskqueue/overview-pull </ p>
</ div>

展开原文

原文

Correct solution is App Engine Task Pull Queues

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问