消息系统(ActiveMQ)


开源的消息系统有很多,包括Apache的ActiveMQ,Apache的Kafka,RabbitMQ、memcacheQ等。

下面来介绍ActivateMQ来介绍消息系统的使用和集群架构。

ActivateMQ是Apache所提供的一个开源的消息系统,完全采用Java实现,因此它能够很好的支持J2EE提出JMS规范。JMS是一组Java应用程序接口,他提供消息的创建、发送、接收、读取等一系列服务。它与java数据库的统与厂商无关的一种一访问接口JDBC类似,它是一种与厂商无关的API,能够与不同厂家的消息组件很好的进行通信。

JMS支持的消息类型包括简单文本(TextManger),可序列化的对象(ObjectMessage)、键值对(MapMessage)、字节流(BytesMessage)、流(StreamMessage),以及无有效负载的消息(Message)等。消息的发送时异步的,因此,消息的发送者发送完消息之后,不粗要等待消息接受者立即响应,这样便提高了分布式系统协作的效率。


点对点的消息
点对点的消息是基于队列的,消息产生着发送消息队列,消息消费者从队列中接收消息,队列的存在使消息的异步成为可能,P2P模型在点对点的情况下进行消息传递时使用。

消息系统(ActiveMQ)


发布订阅的的消息
发布/订阅模型定义了如何向一个内容节点发布和订阅消息,这个内容节点成为topic(主题),主题可以认为是消息传递的中介,消息发布者将消息发布到某个主题,而消息订阅者从主题订阅消息。主题使得消息的订阅者与消息发布者相互保持独立,不需要进行接触即可保证消息的传递,发布/订阅模型在消息的一对多广播时采用。

消息系统(ActiveMQ)