一、使用消息中间件的理由
1.异步处理
2.应用解耦
3.流量削峰
二、消息代理的两种规范
1.JMS:Java消息服务-基于JVM消息代理的规范。ActiveMQ、HornetMQ是JMS实现的(Java api)
2.AMQP:高级消息队列协议,也是一个消息代理规范,兼容JMS。RabbitMQ是AMQP的实现(网络线级协议)
三、流程示意图
1.Publisher:消息生产者 2.Broker:消息代理 3.Exchange:交换器 4.Queue:队列 5.Consumer:消息消费者
四、RabbitMq运行机制
1.消息中的路由键(routing key),路由键与队列名完全匹配
五、安装测试RabbitMq
1.连接linux服务器,登入docker hub查询rabbitmq,加上中国镜像加速前缀
使用命令:docker pull registry.docker-cn.com/library/rabbitmq:3-management
查看镜像:docker images
运行镜像:docker run -d -p 5672:5672 -p 15672:15672--name myrabbitmq df0ee1f2343b
查看运行:docker ps
管理界面:IP:15672 (登入账户默认为guest 密码也是guest)
六、Rabbit整合(使用IDEA)
1.引入spring-boot-starter-amqp(new project里面的Integration就有rabbitmq整合)
2.application.yml配置
3.自动配置:
- RabbitAutoConfiguration
- 有自动配置了连接工厂ConnectionFactory
- RabbitProperties 封装了 RabbitMQ的配置
- RabbitTemplate:给RabbitMQ发送和接受消息
- AmqpAdmin:RabbitMQ系统管理功能组件
4.使用代码
5.配置类,使发送接收的数据都是序列化后的
6.rabbit监听写法
在主配置类中添加注解:@EnableRabbit //开启基于注解的RabbitMQ模式