开始

创建包sender 发送器

image.png
image.png
首先是需要Component注解,然后需要一个打日志的注解.Slf4j
image.png
加上注解
image.png

注入restTemplate,再注入我们的Service类
image.png
只有一个核心方法就是send,也不需要抛异常,如果有错误的话,就会默默的重发
先打印日志,把入参都打印出来
image.png
业务放放在try块里面,里面可能抛出异常,
image.png
消息被持久化
image.png
对消息设置属性,新建消息。
都是要找MQP包下面的。
image.png

image.png

CorrelationData就是消息返回、消息重发、消息确认的时候用的。消息返回的时候会带着这个CorrelationData,我们可以把data取出来。然后找到是我们数据库存的哪一条消息。

image.png
消息的id就放进CorrelationData
image.png

发送完消息,把id打印出来
image.png
我们的业务发消息,直接调用这个send方法就可以了。

消息确认返回的逻辑

这里是确认回调和返回回调
image.png
act为true表示消息接收了。并且correlationData不能为空,correlationData如果为空我们也找不到这条消息。
image.png
先取出message的id
image.png

注入
image.png
直接把消息删掉了 不需要重新发了
image.png

else的逻辑,打印日志
image.png
发送确认就是有没有这个交换机。有交换机肯定会被正确的投递。

消息返回

returnCallback一旦被调用就是消息找不到这个队列了。
那就直接把这个消息重新持久化。

我们在消息发送的时候把消息的id设置上。
image.png

image.png

结束