![](/img/trans.png)
[英]How to create Synchronous consumer API for Rabbit MQ in java to fetch message from the Queue
[英]How to send correlation id, into message, from sender and retrieval from receive into message header with Rabbit MQ by java
我已经使用Rabbit MQ发送和接收JSON消息。
我已经实现了一个将RabbitTemplate实例与convertAndSend方法一起使用的应用程序,用于向交易所发送消息,如下所示:
rabbitTemplate.convertAndSend(exchangeNameOut, message.getString(PERSISTENCE_MESSAGE_ROUTING_KEY),
message.getString(PERSISTENCE_MESSAGE_BODY), new CorrelationData(""+analyticRuntime.getId()));
在检索消息的同时,我还实现了以下方法:
@RabbitListener(queues = "${rabbit.queue.mail.name}",containerFactory = "rabbitListenerContainerFactory")
public void processMailMessage(Message message) {
log.info("ENTER [processMailMessage] ");
Mail mail;
JSONObject messageBody = new JSONObject(new String(message.getBody()));
String asset = "" + messageBody.get(Constants.PERSISTENCE_MESSAGE_ASSET_ID_KEY);
String body = "" + messageBody.get(Constants.PERSISTENCE_MESSAGE_EVENT_KEY);
String alarms = "";
log.info("[processMailMessage] message.getMessageProperties().getCorrelationId() : " + message.getMessageProperties().getCorrelationId()";
}
问题是:
谢谢
没有; 关联数据用于关联发布者确认发送; 它与关联ID属性无关。
使用MessagePostProcessor
:
rabbitTemplate.convertAndSend(exchangeNameOut, message.getString(PERSISTENCE_MESSAGE_ROUTING_KEY),
message.getString(PERSISTENCE_MESSAGE_BODY),
m -> {
m.getMessageProperties().setCorrelationIdString(""+analyticRuntime.getId());
return m;
});
如果您没有使用Java8,请使用new MessagePostProcessor() { ... }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.