amqp中使用
provider使用sendAndReceive可以等待消费者取得返回值
consumer使用receiveAndReply,并添加监听器,可以取得provider的message处理并回复
当消息是异步时,直接注册监听器实现onMessage()方法即可。
但是onMessage()方法的返回值是void
那么如果要实现provider同步的功能
consumer除了
while(true){
amqpTemplate.receiveAndReply(queueName,new Callback(Message message){
dosomething;
return "result";
})
}
这种方式之外 还有别的使用方法吗?
왜 반환값을 기다려야 하나요?
A -> B
A A가 B에게 메시지를 보내고, B는 처리가 완료된 후 메시지를 받습니다. B는 A가 메시지 처리 결과를 수신하면 A에게 메시지(수신)를 보냅니다. AB는
Producer
과Consumer
둘 다입니다.MQ가 여전히 동기화 및 기타 작업을 수행해야 한다면 MQ를 직접 사용하고 인터페이스를 사용하는 것이 더 쉽지 않을까요?
그럼 공급자가 소비자로부터 반환 값을 받을 때까지 차단하도록 하시겠습니까?
동기적으로 수신해야 하는 경우에는 공급자와 소비자를 모두 단일 스레드로 만들 수 있습니다.