RabbitMQ 入门(一)

来源:互联网 发布:冰河木马软件下载 编辑:程序博客网 时间:2024/05/20 15:36

一、简介

       RabbitMQ 是信息传输的中间者。本质上,他从生产者(producers)接收消息,转发这些消息给消费者(consumers).换句话说,他能够按根据你指定的规则进行消息转发、缓冲、和持久化。

                

二、为什么要用RabbitMQ

       对于一个大型的软件系统来说,它会有很多的组件或者说模块或者说子系统等,那么这些模块如何通信?如果使用socket或者http接口调用的话,还是有很多的问题需要解决。

  1)信息的发送者和接收者如何维持这个连接,如果一方的连接中断,这期间的数据如何防止丢失?
  2)如何降低发送者和接收者的耦合度?
  3)如何让优先级高的接收者先接到数据?
  4)如何做到负载均衡?有效均衡接收者的负载?
  5)如何有效的将数据发送到相关的接收者?也就是说将接收者订阅不同的数据,如何做有效的过滤。
  6)如可扩展

       对于上述的这些问题,RabbitMQ可以很好的解决这些问题。使用RabbitMQ可以很好的解耦模块A与模块B之间的通信,模块A异步将消息发送到MQ中,或者MQ结合Flume主动去取消息,然后再将消息发送到模块B中。由于消息是可以是MQ发送到模块B中,所以可以控制优先级高的消费者先接收到消息,也可以控制/过滤 消息可以发往哪些消费者,对消息的处理非常的灵活。

       RabbitMQ 是一个消息中间间,顾名思义就是暂时存储消息的载体。在实际运用的过程中,一般是消费者把消息发送到MQ中,如果有发布订阅的条件,MQ会把消息推送到订阅者端(消费者),如果是点对点模式,MQ中的消息是消费者主动发起到相应的队列中获取消息。RabbitMQ常用的模式有:Direct(点对点模式)、Fanout(广播模式)、Topic(主题模式)  后面会结合代码做详细的介绍



0 1