一、简介
RabbitMQ 是信息传输的中间者。本质上,他从生产者(producers)接收消息,转发这些消息给消费者(consumers).换句话说,他能够按根据你指定的规则进行消息转发、缓冲、和持久化。
二、为什么要用RabbitMQ
对于一个大型的软件系统来说,它会有很多的组件或者说模块或者说子系统等,那么这些模块如何通信?如果使用socket或者http接口调用的话,还是有很多的问题需要解决。
对于上述的这些问题,RabbitMQ可以很好的解决这些问题。使用RabbitMQ可以很好的解耦模块A与模块B之间的通信,模块A异步将消息发送到MQ中,或者MQ结合Flume主动去取消息,然后再将消息发送到模块B中。由于消息是可以是MQ发送到模块B中,所以可以控制优先级高的消费者先接收到消息,也可以控制/过滤 消息可以发往哪些消费者,对消息的处理非常的灵活。
RabbitMQ 是一个消息中间间,顾名思义就是暂时存储消息的载体。在实际运用的过程中,一般是消费者把消息发送到MQ中,如果有发布订阅的条件,MQ会把消息推送到订阅者端(消费者),如果是点对点模式,MQ中的消息是消费者主动发起到相应的队列中获取消息。RabbitMQ常用的模式有:Direct(点对点模式)、Fanout(广播模式)、Topic(主题模式) 后面会结合代码做详细的介绍。