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