消息系统(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模型在点对点的情况下进行消息传递时使用。


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

        对于发布/订阅消息传输模型来说,消息的发布者需要将消息投递给topic,而消息的订阅者则需要在响应的topic进行注册,以便接收响应topic的消息。与点对点消息传输模型不同的是,消息发布者的消息将被自动发送给所有订阅了该topic的消息。与点对点消息传递模型不同的是,消息发布者的消息将自动发送给所有订阅了该topic的消息订阅者。当消息订阅者某段时间由于某种原因断开了与消息发送者的连接时,这个时段内的消息将会丢失,除非将消息的订阅模式设置为持久订阅,这时消息的发布者将会为消息的订阅者保留这段时间所产生的消息。当消息的订阅者重新连接消息发布者时,消息订阅者仍然可以获得这部分消息,而不至于丢失这部分消息。
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值