我正在寻找将我们所拥有的消息系统转移到谷歌应用引擎环境,但我有一些问题,我希望有人可以帮助我。
我们当前的消息环境使用rabbit mq处理消息,然后使用大约10个连接到que的消费者来发送消息。这对我们很有用,因为有10个消费者实例来处理消息会大大提高交付率。
我知道app引擎不支持rabbit mq所以我想知道什么是实现相同结果的最佳选择。我看到你可以在后台运行任务很棒,但这只会作为一个实例,这会降低交付率。
还有其他选择吗?
答案 0 :(得分:1)
我之前从未使用过rabbitmq,但是您的要求看起来非常适合在app引擎上使用taskqueue和pipeline。
TaskQueue提供设置使用者和设置其处理速率的功能。 https://developers.google.com/appengine/docs/python/taskqueue/
使用Task Queue API,应用程序可以在用户请求之外的用户请求之外执行工作。如果应用程序需要执行一些后台工作,它可以使用任务队列API将该工作组织成称为任务的小型离散单元。该应用程序将任务添加到稍后要执行的任务队列。
piepline基于taskqueue,并提供更多控制流的功能。 https://code.google.com/p/appengine-pipeline/
Google App Engine Pipeline API将复杂,耗时的工作流程(包括人工任务)连接在一起。目标是灵活性,工作流重用和可测试性。 API的主要用例是将各种App Engine MapReduces连接到计算管道中。