我有一个关于spring-messaging (spring集成+ amqp)与RabbitMQ的问题。我有一个基于微服务架构的应用程序。一条服务发布消息,方式如下:
@EventListener(AfterCreationEvent.class)
@Publisher(channel = "messages")
public Message<Message> onCreateEntity(AfterCreationEvent<Message> event) {
if (isDisabled()) return null;
String id = event.getSource().getId();
return MessageBuilder.withPayload(event.getSource())
.build();
}和其他消息正在监听,例如
@StreamListener("messages")
public void onMessageReceived(@Payload Message input) {
messageService.save(input)
}微服务具有以下基本配置:
spring:
rabbitmq:
host: rabbit
port: 5672
cloud:
stream:
bindings:
messages:
producer:
required-groups: terminal,chat,security
destination: message.share
binder: rabbit
binders:
rabbit:
type: rabbit每个服务都有自己的配置,例如:
spring:
application.name: message
cloud:
stream:
bindings:
messages:
content-type: application/json和
spring:
application.name: terminal
cloud:
stream:
bindings:
messages:
group: terminal它工作得很好。但它是以异步方式工作的,但我希望收到来自每个所需组的回复,该消息已被传递。有可能吗?
现在我正在使用spring-integration-amqp:4.3.1版本
发布于 2017-04-09 04:21:42
消息传递amqp本质上是异步的,因此在默认情况下,您不能等待回复。您需要自己实现等待机制。一种方法是利用消息的相关is。
https://stackoverflow.com/questions/43299947
复制相似问题