一、rabbitMq消息队列的流程
1.springboot引入,rabbitAutoConfiguration自动配置
2.rabbitAutoConfiguration配置了连接工厂ConnectionFactory
3.ConnectionFactory参数是RabbitProperties,该参数封装了RabbitMq的配置,从自定义的properties中获取,从而连接rabbitMq的管理界面,进而与该管理进行交互
4.RabbitTemplate给RabbitMQ发送和接受消息
5.AmqpAdmin创建和删除,自定义的Queue、Exchange、Binding
6.@EnableRabbit + @RabbitListener 监听消息队列的内容,可以实现下单和减少库存的业务
二、发送消息
converterAndSend:第一个参数是交换器,第二个参数是路由间,第三个是对象内容,交换器和路由键形成的绑定,会把内容转发到指定列队
三、接收消息
receive只能收到消息头,receiveAndConvert会自动把消息体转为我们想要的内容,但是只是Object内容,可以转化为 json更清晰,参数是队列,从哪个队列获取消息
因为RabbitTemplate默认使用的是SimpleMessageConverter信息转化
因为消息队列存放的消息体是字节码,而SimpleMEssageConverter里面的fromMessage是把消息用字节数组的方式拿到,再用jdk序列化
如果我们需要json数据的时候,只需要自定义MessageConverter
因为RabbitAutoConfiguration在注入RabbitTemplate的bean时候,里面的操作是,有MessageConverter就用自定义的
如何配置自定义的json信息转化
四、AmqpAdmin:自定义队列、交换器、绑定
声明交换器,声明队列,声明绑定,将交换器和队列,用一个路由键绑定在一起,这样才能发送消息给交换器,交换器才知道转发消息给那个队列