开始

image.png

订单的消息需要重复的发送,重复的消费,这样就需要定时任务,对订单状态进行巡检,使用定时任务的框架。
image.png

实战

基于orderService。现在这里面搭建,开发和调试完成后,再打包出来。 其他所有的服务去引用就可以了。
image.png

image.png
增加config的包,然后增加配置类。
image.png

创建ConnectionFactory

首先需要创建connectionFactory的Bean,先创建CachingConnectionFactory然后设置它的ip地址、端口等。这些是链接的属性。这些我们以前是硬编码到代码里面的。
image.png
写到配置文件内。用@Value注解去配置文件内的配置节点。
image.png
image.png
端口号应该是个int类型的
image.png
image.png
image.png

开启发送确认机制。这里为什么用Correlated是因为发送者确认,接收回来的有关你发送消息的成功还是失败的,消息的id参数。我们要知道哪一条消息被确认了,所以这里要有Correlated参数。
image.png
消息返回:消息无法路由的时候。
打开消息返回。
image.png
加上Bean的注解,交给Spring去管理
image.png

配置RabbitAdmin

打开AutoStartup后,就会自动的在spring容器里面搜索所有有关 queue、
exchange、binding的bean。会自动去声明他们,不需要再手动的去声明。
image.png

image.png

设置监听的容器ContainerFactory

Container是持有消息的监听者。
image.png
所以这里就可以设置有关消息监听的各种参数。
设置并发的消费者为3.有几个消费者待命。
image.png
最大并发消费者
image.png
设置为手动的ack
image.png

image.png
这里变量名没有起
image.png

rabbitTemplate

也是需要ConnectionFactory作为入参。
image.png
设置消息的返回和发送者确认的回调。

打开托管
image.png
设置发送者返回
image.png
alt+回车键,改成莱姆达表达式的形式
image.png

image.png
我们没有业务逻辑先打印日志出来
image.png

image.png
alt+回车,同样改成莱姆达表达式的形式。
image.png
打印日志。打印日志这里,如果用加号的话,会先拼,拼进去再判断log的级别要不要打,用大括号做占位的话, 会先判断这个log级别要不要打,在高log级别的时候,会有效的节约系统的资源
image.png

image.png

这里少个逗号,补上
image.png

结束