1) 点对点通信:点对点方式是最为传统和常见的通信方式,它支持一对1、一对多、多对多、多对一等多种配置方式,支持树状、网状等多种拓扑结构。服务器
2) 多点广播:MQ适用于不一样类型的应用。其中重要的,也是正在发展中的是"多点广播"应用,即可以将消息发送到多个目标站点(Destination List)。可使用一条MQ指令将单一消息发送到多个目标站点,并确保为每一站点可靠地提供信息。MQ不只提供了多点广播的功能,并且还拥有智能消息分发功能,在将一条消息发送到同一系统上的多个用户时,MQ将消息的一个复制版本和该系统上接收者的名单发送到目标MQ系统。目标MQ系统在本地复制这些消息,并将它们发送到名单上的队列,从而尽量减小网络的传输量。网络
3) 发布/订阅(Publish/Subscribe)模式:发布/订阅功能使消息的分发能够突破目的队列地理指向的限制,使消息按照特定的主题甚至内容进行分发,用户或应用程序能够根据主题或内容接收到所须要的消息。发布/订阅功能使得发送者和接收者之间的耦合关系变得更为松散,发送者没必要关心接收者的目的地址,而接收者也没必要关心消息的发送地址,而只是根据消息的主题进行消息的收发。在MQ家族产品中,MQ Event Broker是专门用于使用发布/订阅技术进行数据通信的产品,它支持基于队列和直接基于TCP/IP两种方式的发布和订阅。负载均衡
4) 群集(Cluster):为了简化点对点通信模式中的系统配置,MQ提供Cluster(群集)的解决方案。群集相似于一个域(Domain),群集内部的队列管理器之间通信时,不须要两两之间创建消息通道,而是采用群集(Cluster)通道与其它成员通信,从而大大简化了系统配置。此外,群集中的队列管理器之间可以自动进行负载均衡,当某一队列管理器出现故障时,其它队列管理器能够接管它的工做,从而大大提升系统的高可靠性。spa
MQ Server和MQ Client对象
MQ产品分为Server和Client 两种版本,在MQ服务器的运行环境下,有队列管理器、队列、消息通道等对象,它提供全面的消息服务;MQ Client为咱们提供了一个MQ应用程序的开发和运行环境,它是MQ API的Client实现。在客户端环境下,没有队列管理器、队列等对象,它经过MQI通道与服务器之间创建通信,并将消息从客户端发往服务器端的队列,或从Server端的队列中取得消息,它比较适合于网络条件较好或实时通信的状况。同时要指出的是:采用MQ Client并不会致使数据的丢失或不完整性。MQ Client提供下列好处:适合同步处理的工做模式;减小系统负担;减小系统管理开销;减小磁盘空间要求等。队列
JMS定义了五种不一样的消息正文格式,以及调用的消息类型,容许你发送并接收以一些不一样形式的数据,提供现有消息格式的一些级别的兼容性。开发
· StreamMessage -- Java原始值的数据流字符串
· MapMessage--一套名称-值对同步
· TextMessage--一个字符串对象产品
· ObjectMessage--一个序列化的 Java对象
· BytesMessage--一个未解释字节的数据流