ActiveMQ

 ActiveMQ是什么

ActiveMQ是一个消息队列应用服务器(推送服务器)。支持JMS规范

 JMS概述

全称:Java Message Service ,即为Java消息服务,是一套java消息服务的API标准。(标准即接口)

实现了JMS标准的系统,称之为JMS Provider。

1.1.1        消息队列

1.1.1.1    概念

消息队列是在消息的传输过程中保存消息的容器,提供一种不同进程或者同一进程不同线程直接通讯的方式。

Producer:消息生产者,负责产生和发送消息到 Broker;

Broker:消息处理中心。负责消息存储、确认、重试等,一般其中会包含多个 queue;

Consumer:消息消费者,负责从 Broker 中获取消息,并进行相应处理;

 常见消息队列应用

(1)、ActiveMQ

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。

(2)、RabbitMQ

RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。开发语言为Erlang。

(3)、RocketMQ

由阿里巴巴定义开发的一套消息队列应用服务。

ActiveMQ能做什么

(1)实现两个不同应用(程序)之间的消息通讯。

(2)实现同一个应用,不同模块之间的消息通讯。(确保数据发送的稳定性)

 ActiveMQ主要特点

(1)支持多语言、多协议客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP

(2)对Spring的支持,ActiveMQ可以很容易整合到Spring的系统里面去。

(3)支持高可用、高性能的集群模式。

  PTP模式(point to point)

--消息模型

 

消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。

消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。

Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费、其它的则不能消费此消息了。

当消费者不存在时,消息会一直保存,直到有消费消费

我们的入门示例,就是采用的这种PTP服务模式。

  TOPIC(主题订阅模式)

--消息模型

 

消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。

和点对点方式不同,发布到topic的消息会被所有订阅者消费。

当生产者发布消息,不管是否有消费者。都不会保存消息

所以,主题订阅模式下,一定要先有消息的消费者(订阅者),后有消息的生产者(发布者)。

原文地址:https://www.cnblogs.com/vieta/p/11284691.html