java - spring-amqp中消费者同步回复消息有没有更简单的方法?

 mobiledu2502875545 发布于 2022-10-25 18:12

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

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

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

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

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

2 个回答
  • 那你就是想要provider一直阻塞直到接收到consumer的返回值咯?
    不建议这样,如果非要同步接收的话,可以让provider和consumer都是单线程的。

    2022-10-27 00:31 回答
  • 干嘛一样要等返回值呢?
    A -> B
    A <- B
    A给B发送消息,B接收消息处理完成之后。B给A发消息(回执)当A收到消息处理结果。AB是Producer也是Consumer

    如果MQ中间还要做同步等等操作,那还用什么MQ直接用接口不是更容易些吗?

    2022-10-27 00:31 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有