【发布时间】:2019-05-08 03:17:28
【问题描述】:
我正在研究 RabbitMQ,我想知道如何将它处理的数据返回给客户端(网站用户)。
我正在考虑的过程由一个 REST 端点组成,用户在该端点请求要处理的东西,大约需要 5 秒才能完成。因此,用户请求它,Web 服务将请求转发到 RabbitMQ 队列,该队列将有多达 10 个 docker 容器中的消费者监听它并准备处理请求。到目前为止一切顺利,我可以做到这一点。问题是,消费者处理完数据后,如何将数据返回给用户? 考虑到下面的设计,有图片可以更好地理解:
换句话说,它会是这样的:
1 - 生产者(rest)接收请求并将消息发送到 RabbitMQ。
2 - RabbitMQ 将消息转发给任何正在监听的消费者。
3 - 消费者处理数据。
4 - 这就是我迷路的地方。如何将生成的数据返回给客户端(网站用户)?还有一件事,用户将等待请求结束,无需稍后发送。
为了更好的细节,我使用的是java,其余部分是spring boot。
【问题讨论】:
-
您的图片显示“ActiveMQ”,但描述中没有提及。这不应该说“RabbitMQ”吗?
-
哈哈是的...这是我在考虑使用 activemq 时所做的草图...但归根结底,两者的结构是相同的。
标签: java rest rabbitmq spring-rabbit