一、什么是消息队列:
消息队列提供了一种进程与进程间发送数据块的一种方法,每个数据块含有一个类型,接收进程可以独立地接收含有不同类型的数据结构,可以通过发送消息来避免同步和阻塞问题。消息队列有最大长度限制
在分布式计算环境下,消息队列是为了对异构网络环境下的分布式应用提供有效的通信机制,主要为应用解耦、异步处理、信息交换等来实现高性能、高可用的一致性架构。
二、MQ的通信模式
1.点对点通讯:支持一对一、一对多、多对多等配置方式,是一种比较传统和常见的方式(对一个消息来说,终究只有一个‘消费者’消费)。
2.多点广播:将消息发送到多个目标站点,并确保为每一站点可靠地提供信息,MQ不仅提供了多点广播的功能,而且还拥有智能消息分发功能,在将一条消息发送到同一系统上的多个用户时,MQ将消息的一个复制版本和该系统上接收者的名单发送到目标MQ系统。目标MQ系统在本地复制这些消息,并将它们发送到名单上的队列,从而尽可能减少网络的传输量。
3.发布/订阅模式:原理类似于杂志的订阅过程,用户只用告诉杂志社所要订的杂志名、地址等信息,交了钱等待接收就ok了,而这种模式的消息队列也是如此,使消息按照特定的主题或内容进行分发,而不必关心其他事情,使得生产者和消费者之间的耦合变的更加松散。