Spring Boot RabbitMQ RPC 模式:使用 replyTo 队列接收响应消息
在 Spring Boot 中使用 RabbitMQ 的 RPC 模式,可以指定 'replyTo' 队列来接收响应消息。下面是一种实现方式:
-
首先,确保已经配置了 RabbitMQ 的连接信息,如用户名、密码、主机地址等。
-
创建一个发送消息的方法,可以使用 RabbitTemplate 来发送消息,并指定 'replyTo' 队列。
@Autowired
private RabbitTemplate rabbitTemplate;
public String sendMessageWithReply(String message) {
// 设置 'replyTo' 队列
String replyToQueue = rabbitTemplate.getRequiredReplyTo();
MessageProperties messageProperties = new MessageProperties();
messageProperties.setReplyTo(replyToQueue);
// 发送消息
Message requestMessage = new Message(message.getBytes(), messageProperties);
Message responseMessage = rabbitTemplate.sendAndReceive(requestMessage);
// 处理响应消息
String response = new String(responseMessage.getBody());
return response;
}
- 创建一个接收消息的方法,可以使用
@RabbitListener注解来监听 'replyTo' 队列,并处理接收到的响应消息。
@RabbitListener(queues = "${spring.rabbitmq.reply-to}")
public void receiveResponseMessage(Message message) {
String response = new String(message.getBody());
// 处理响应消息
}
- 在配置文件中指定 'replyTo' 队列的名称。
spring.rabbitmq.reply-to=my-reply-queue
这样,当发送消息时,会将 'replyTo' 队列名称指定到消息属性中,接收方会根据该队列来发送响应消息。接收方监听 'replyTo' 队列,并处理接收到的响应消息。
原文地址: https://www.cveoy.top/t/topic/cZyd 著作权归作者所有。请勿转载和采集!