activeMQ消费者处理完消息后,如何实现页面转跳? 400 报错
@z_jordon 你好,想跟你请教个问题:
我在controller层把请求数据压入队列,然后在消费者类把请求拿出来,再去发起请求,以此控制并发问题。问题来了,消息经过队列,被消费者类拿出来后,发起请求后,并没有转跳到指定页面,如何实现这个功能,项目架构spring+activeMQ4
activeMQ消费者处理完消息后,如何通知发送者,实现页面转跳
页面轮询处理状态,或许通过websocket之类的######
说一下我的理解,按照你的描述你好像是要实现这样的功能:
请求进入controller的某个方法后,把请求数据放入mq,消费者接收这个消息并处理完后,需要controller中的原方法根据mq处理结果实现页面跳转。
MQ不是这样用的,你的需求只不过是想把业务处理给异步化而已。要么你还是这样用,但是在controller中把数据提交给MQ后,controller就跳页面,也就是说把数据放进mq后,就认为成功了,http响应成功,至于mq消息的处理,那是另外一个过程,不过一般都不会这样用。
一般为了提高性能,实现读写分离后,读尽量加缓存,写只要能异步化的尽量异步化,不能异步化的就还是同步处理。看你在用spring,spring组织本身就有一个叫reactor(https://github.com/reactor/reactor-spring)的东西,支持异步化,另外像google的guava中也有eventbus能实现异步化,java本身也有Callable、Future机制等。你在controller中就使用activeMQ这种跨进程跨网络的组件肯定是不合适的,并且你还想在同一个http请求中得到mq的执行结果,也不现实。
######如果要等待结果,那还不如直接同步处理你的任务,处理完就跳转。######@ 清靜無虞 请教一下,MQ正确使用方法,能说说吗?版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。