开始
这是我们之前处理监听消息的
之前我们是用RabbitListener注解来实现的、
现在我们把注解整个的都删掉
清空后
具体的业务类实现抽象的AbstractMessageListener
实现这个抽象方法
我们用原来方法的内容 替换到 实现的抽象方法里面按
这样我们实现了无缝切换
我们的基类是一个抽象类,这里要用extends
处理下异常
这里接收完,再发消息还是用的最原始的connection、channel做的,我们要改造一下
注入TransMessageSender
上面一个方法搞定发送
这样就一个方法就搞定
第二次收到消息
改成一个方法方法
我们不使用注解后,这里注释的代码都放开。
还是我们这个业务应用去监听
监听器我们用户的orderService继承了框架里面抽象的 AbstractMessageListener
这个抽象的MessageListener。
接收到消息后,会调用这个onMessage方法先对消息进行存库处理操作,操作完之后再
操作完成之后再调用receiveMessage方法。
这个方法在抽象类里面是个抽象方法,是由我们的业务应用去实现。由我们的业务应用去实现的、
ctrl+alt+b
就跳到了我们的业务应用里面
处理完之后又回到我们的框架,处理善后的处理。
以上就是我们接收消息的架构逻辑。
配置都放开了注释,如果里面还有新建ConnectionFactory,新建RabbitAdmin的话、ContainerListener这种的可以去掉。
运行测试
测试消息的处理流程是否正常。
回发一个消息。
切换到业务。把转移去掉斜线。
下一步再发送给骑手微服务,骑手服务没有,所以找不到路由
我们只需要管前面这块逻辑
异常的测试
故意把是否确认设置null
后面消费次数增加,消费的越来越慢。它是2的次幂次方
第五次之后,消息就成了死信了