通过RabbitMQ发出HTTP请求吗?

时间:2019-08-29 09:07:04

标签: http rabbitmq google-cloud-functions

我正在设计一个系统,该系统的一个组件为我提供了大约50个输出。然后,我为50个输出中的每个输出启动VM实例,将输出作为输入传递,并运行一个过程,每个实例可能需要10到60分钟。

当前,当我获得输出数据时,我要做的是将每个输出添加到消息队列(rabbitmq),然后将HTTP请求发送到云函数。该云功能基本上为每个输出创建“自毁”实例。 HTTP请求具有“ number_of_req_instances”,然后每个实例都充当使用者,并从队列中选择一个任务。

我想知道,有什么方法可以从rabbitmq发送HTTP请求吗?或处理这种用例的最佳实践是什么?我对创建实例的“ http请求”和队列的填充仅是两个步骤,并不完全满意。

我不仅需要将输出作为输入传递,而且还需要启动实例。我也喜欢RabbitMQ在消息确认方面工作得很好的事实,因此我希望将其保留在系统中。但是,我可以使用HTTP请求传递所有信息,并将其提供给实例的元数据。但这不是理想的,因为HTTP响应是直接的,我不知道是否有任何任务失败,而不是使用RabbitMQ。

有任何建议吗?

1 个答案:

答案 0 :(得分:0)

您可以研究通过发布/订阅消息触发Cloud Function的解决方案。输出将发送到Pub / Sub中的主题。一旦发布主题,此主题将被设置为启动功能的触发器。 Cloud Function将摄取包含输出的Pub / Sub消息并处理输出。

您可能会在documentation中详细了解由发布/订阅触发的Cloud Function。还有一些您可能会发现有趣的体系结构参考。即serveless event driven