目录
RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。RabbitMQ官方地址:http://www.rabbitmq.com
理解:为一种Producer 和 Consumer 连接的解耦工具
工作原理:
RabbitMQ:
一、简单模式:
- 使用一个队列,一个消费者从这个队列来接收消息,
- 发送消息通过默认的交换机(一个空的字符串 “”)从这个队列来发送
二、工作模式:
1、负载均衡:
- 多加几个消费者,多个消费者的负载均衡,消息会在多个消费者之间轮循发送,从而提高消息的处理速度。
2、合理分发:
- 为提高消息处理速度,会实现消息的合理分发:(做合理分发需要加两条设置)
1.手动ACK:
2.Qos=1:
- 如果处理时挤压消息,会考虑到设置消息的持久化:把队列设置成持久的队列,把第二个参数设置成true,消息也要是持久性的消息
三、发布和订阅模式
交换机:用的是Funout交换机,
- 发消息:通过交换机把消息广播出去,广播模式
- 消费者接收消息:要有自己的一个队列,把队列绑定到交换机,群发消息时,只向和他绑定的队列发送
四、路由模式
交换机:用的是Direct交换机,
- 通过路由关键词匹配队列,发送消息时会携带关键词,跟哪一个关键词匹配就发到哪一个队列
五、主题模式
交换机:用的是Topic交换机
- 也是路由模式,
- 区别:他的关键词有自己的规则:多个关键词用点连接" .",可以添加#、*这种通配符,来和消息的关键词进行匹配。