什么是RabbitMq?
MQ(Message Queue,消息队列)是一种应用系统之间的通信方法。是通过读写出入队列的消息来通信的。
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写。
工作模式:
简单模式和工作队列模式
由3个对象组成,消息生成者P、队列、消费者C。一条消息只能给一个消费者消费。
案例:发送短信、执行一次性任务。
发布/订阅模式
发布/订阅模式
每个消费者监听自己的队列;
由交换机将消息转发到绑定此交换机的每个队列,每个绑定交换机的队列都将接收到消息;
使用fanout的模式。不处理路由键。只需要简单的将队列绑定到交换机上。
一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。
案例:发送多种通知,当用户充值成功后,需要发送多种通知,比如短信、邮件。
路由模式
每个消费者监听自己的队列,并且设置routingkey。
生产者将消息发给交换机,由交换机根据routingkey来转发消息到指定的队列。
一个消息可以被多个消费者获取,并且消息的目标队列可被生产者指定。
使用direct模式。处理路由键。需要将一个队列绑定到交