1 rabbitMQ基本组件
broker
:接受和分发消息的处理应用,rabbitMQ server
connection
:生产者/消费者与broker之间的TCP连接
channel
:一次connection之间建立的逻辑连接
exchange
:消息到达broker的第一站,根据分发规则匹配查询表中的routing key,分发到对应的消息队列中去。
queen
:消息队列
routing Key
:生产者将消息发送到交换机时会携带一个key来指定路由规则
binding Key
:在绑定Exchange和Queue时候,会指定一个BindingKey,生产者发送消息携带的RoutingKey会和bindingKey对比,若一致就将消息分发至这个队列
2 交换机类型
直接交换机
:direct exchange
匹配路由键,只有完全匹配后消息才会被转发
扇出交换机
:fanout exchange
将消息发送给所有队列
主题交换机
:Topic exchange
将路由按模式匹配,此时队列需要绑定一个模式
头交换机
:header exchange
在绑定exchange与header的时候需要指定一个键值对,header为键,根据请求消息中的header进行路由
3 常用工作模式及应用场景
1.简单模式
生产者将消息直接放进队列,消费者监听消息队列,有消息则拿走消息进行消费
应用场景
:聊天
2.工作模式
work queue是一个较为基础的工作模式,其工作模式是多个消费者共同消费同一个队列中的信息;
启动多个消费者,当生产者将消息发送给队列时,一条信息只会被一个消费者接收,rabbit采用轮询的方式将消息平均发送给消费者,消费者在处理完某个信息后才会接收到下一条信息
应用场景:1.红包;2.大系统之间的资源调度,任务分配系统不知道哪个任务执行系统目前是空闲状态;
3.发布订阅模式
Publish/Subscribe模式是work queue的升级版,生产者通过交换机将信息转发给绑定到交换机的相应队列,每个绑定到交换机的队列都将收到信息;消费者会监听自己的队列,然后队列会将信息发送给监听它的消费者。
这种模式下的交换机是fanout类型
应用场景
:
4.路由模式
Routing模式下exchange的类型是direct,相较Publish/Subscribe模式该模式多了routingkey;
应用场景
:
5.主题模式 topic模式
Topic模式下交换机类型为topic,该模式和Routing模式一样,只不过是这个模式下的routingkey可以用通配符
应用场景
:
6.RPC模式(了解)