Rabbitmq 当我可以';你不能换一个吗?
我有一个由两个节点组成的现有系统,一个客户机/服务器模型。 我想使用RabbitMQ在它们之间交换消息。也就是说,客户机将向RabbitMQ发送所有请求,服务器将无限期地侦听队列,使用任何到达的消息,然后对其采取行动 我可以根据需要更改服务器,但我的问题是,我无法更改客户端的行为。如何将响应发送回客户端Rabbitmq 当我可以';你不能换一个吗?,rabbitmq,message-queue,Rabbitmq,Message Queue,我有一个由两个节点组成的现有系统,一个客户机/服务器模型。 我想使用RabbitMQ在它们之间交换消息。也就是说,客户机将向RabbitMQ发送所有请求,服务器将无限期地侦听队列,使用任何到达的消息,然后对其采取行动 我可以根据需要更改服务器,但我的问题是,我无法更改客户端的行为。如何将响应发送回客户端 客户端节点理解HTTP请求/响应,在将另一个应用服务器配置为RabbitMQ而不是直接配置我的应用程序之后,我应该做什么。您可以使用或使用一些内部约定,例如将结果存储在数据库(或缓存)中使用已知
客户端节点理解HTTP请求/响应,在将另一个应用服务器配置为RabbitMQ而不是直接配置我的应用程序之后,我应该做什么。您可以使用或使用一些内部约定,例如将结果存储在数据库(或缓存)中使用已知id并轮询您的存储以获得循环结果,您必须在中间使用一个代理服务器,该代理服务器似乎将节点1(您不能更改的客户端)作为实际服务器,而它只是将请求注入队列服务器。您还必须使用2个队列 为了清楚起见,让我们列举一下系统参与者:
- 客户
- 代理服务器,提供与实际服务器相同的API的服务器(但它不做任何工作)
- 实际服务器,执行实际工作的服务器
- 输入队列,客户端请求进入的队列(代理服务器执行此操作)
- 输出队列,服务器响应进入的队列(实际服务器执行此操作)
- 客户端向代理服务器发送请求
- 代理服务器将请求放入输入队列
- 实际服务器(侦听输入队列)将获取请求
- 实际服务器处理消息
- 实际服务器将响应发送到输出队列
- 代理服务器(侦听输出队列)将获取响应
- 代理服务器将响应返回给客户端