1.消息队列的应用场景
1.1 任务异步处理
1.2 应用程序解耦合
2.RabbitMQ优势
2.1 基于AMQP协议 VS JMS(java 消息中间件的api,类似jdbc)
2.2 springboot集成
3.RabbitMQ组成和工作原理
3.1 组成:
Broker: 消息队列服务进程,此进程包括两个部分:Exchange和Queue
Exchange: 消息队列交换机,按一定的规则将消息路由转发到某个队列,对消息进行过滤
其中,交换机的类型有:
fanout: 对应 publish subscribe 工作模式
direct: 对应 routing 工作模式
topic: 对应 topics 工作模式
headers: 对应 headers 工作模式
RoutingKey: 路由/转发规则
Queue: 消息队列,存储消息的队列
Producer: 消息生产者
Consumer: 消息消费者
Connection: 大连接
Channel:大连接里面的小连接
3.2 工作原理:
4.生产者消费者入门
Messaging that just works — RabbitMQ
5.工作模式
5.1 work queues 工作队列:一个消息只会被一个消费者接收,多人一起干一个活
5.2 publish subscribe 发布订阅:一个消息可以被多个消费者接收,包含工作队列模式
5.3 routing 路由:需要设置一个或多个RoutingKey, 比发布订阅模式多了一层判断(RoutingKey),包含发布订阅模式
5.4 topics 通配符
5.5 header 转发器
5.6 rpc 远程过程调用
6.springboot整合
6.1 POM: spring-boot-start-amqp
6.2 yml
6.3 config
声明交换机,声明队列,绑定交换机和队列
6.4 producer和consumer
Producer: RabbitTemplate
Consumer: RabbitListener