消息系统
1、什么事是消息系统?
在分布式系统中,消息系统的应用十分广泛,消息可以作为应用间通信的一种方式。消息被保存在队列中,直到被接收者取出。由于消息发送者不需要同步等待消息接收者的响应,消息的异步接收降低了系统集成的耦合度,提升了分布式系统协作的效率,使得系统能够更快地响应客户,提高系统的吞吐量。当系统处于峰值压力时,分布式消息队还能够作为缓冲,削峰填谷,环节集群的压力,避免整个系统被压垮。
2、如何实现消息系统?
ActiveMQ&JMS:ActiveMQ是基于java实现的Apache开源消息系统,它很好的支持J2EE所提出的JMS规范。JMS(java message service,即java消息服务)是一组java应用程序接口,它提供消息的创建,发送,接收,读取等一系列服务。JMS定义了一组公共应用程序接口和相应的语法,类似于java数据库的同意访问接口JDBC,它是一种与厂商无关的API,使得java程序能够与不同厂商的消息组件很好地进行通信。
JMS支持的消息类型包括简单文本,可序列化对象,键值对,字节流,流等。消息的发送是异步的,这杨提高了分布式系统协作的效率。
JMS支持两种消息发送和接收模型:
(1)一种是点对点(p2p)模型,主要采用队列进行实现。
(2)另一种采用订阅/发布(pub/sub)模型,主要采用广播的方式来实现,订阅发布模型定义了如何向一个内容节点发布和订阅消息,这个内容节点称为topic。Topic是消息传递的中介,发布者将消息发布到某个主题,订阅者则从主体订阅消息,这样使得订阅者和发布者保持相互独立,不需要进行接触就可以进行消息传递。