java - spring-amqp中消费者同步回复消息有没有更简单的方法?
ringa_lee
ringa_lee 2017-04-18 10:26:20
0
2
521

amqp中使用
provider使用sendAndReceive可以等待消费者取得返回值
consumer使用receiveAndReply,并添加监听器,可以取得provider的message处理并回复

当消息是异步时,直接注册监听器实现onMessage()方法即可。
但是onMessage()方法的返回值是void

那么如果要实现provider同步的功能
consumer除了

while(true){
    amqpTemplate.receiveAndReply(queueName,new Callback(Message message){
         dosomething;
         return "result";
    })
}

这种方式之外 还有别的使用方法吗?

ringa_lee
ringa_lee

ringa_lee

모든 응답(2)
刘奇

왜 반환값을 기다려야 하나요?
A -> B
A A가 B에게 메시지를 보내고, B는 처리가 완료된 후 메시지를 받습니다. B는 A가 메시지 처리 결과를 수신하면 A에게 메시지(수신)를 보냅니다. AB는 ProducerConsumer 둘 다입니다.

MQ가 여전히 동기화 및 기타 작업을 수행해야 한다면 MQ를 직접 사용하고 인터페이스를 사용하는 것이 더 쉽지 않을까요?

阿神

그럼 공급자가 소비자로부터 반환 값을 받을 때까지 차단하도록 하시겠습니까?
동기적으로 수신해야 하는 경우에는 공급자와 소비자를 모두 단일 스레드로 만들 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿