ActiveMQ

一、ActiveMQ简介

  Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。

  ActiveMQ拥有多语言和协议编写客户端。

  语言:Java、C、C++、C#、Ruby、Perl、python、PHP

  应用协议:OpenWire、Stomp、WS、Notifaction、XMPP、AMQP。

  完全支持JMS1.1和J2EE1.4规范(持久化、XA消息,事务);

  对Spring的支持,ActiveMQ可以很容易内嵌到使用spring的系统里去。

  除了常见的J2EE服务器(如Geronimo,JBoss4,GlassFish,WebLogic)的测试,其中通过JCA1.5 resource adaptors的配置可以让ActiveMQ可以自动化的部署到任何兼容J2EE1.4商业服务器上。

  支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA,支持通过JDBC和journal提供高速的消息持久化。

  从设计上保证了高性能的集群,客户端-服务器,点对点。

  支持Ajax,支持与Ajax的整合,Webservices

  可以很容易的调用内嵌JMS provider,进行测试

二、ActiveMQ相关概念

1,Desination

  目的地,JMS Provider(消息中间件)负责维护,用于对Message进行管理的对象。MessageProducer需要指定Destination才能发送消息,MessageConsumer需要指定Destination才能接收消息。

2,Producer

  消息生成者(客户端,生成消息),负责发送Message到目的地,应用接口为MessageProducer。在JMS规范中,所有的标准定义都在javax.jms包中。

3,Consumer(Receiver)

  消息消费者(处理消息),负责从目的地中消费(处理、监听、订阅)Message,应用接口为MessageConsumer。

4,Message

  消息(Message),消息封装一次通信的内容,常见的类型有:StreamMessage、BytesMessage、TextMessage、ObjectMessage、MapMessage。

5,ConnectionFactory

  链接工厂,用于创建链接的工厂类型看,注意,不能和JDBC中的ConnectionFactory混淆。

6,Connection

  链接,用于建立访问ActiveMQ连接的类型,由链接工厂创建,不能喝JDBC中的Connection混淆。

7,Session

  会话,一次持久有效状态的访问,由链接创建,是具体操作消息的基础支撑。

8,Queue & Topic

  Queue是队列目的地,Topic是主题目的地。都是Destination的子接口。

  Queue特点:队列中的消息,默认只能由唯一的一个消费者处理,一旦处理消息删除。

  Topic特点:主题中的消息,会发送给所有消费者同时处理,只有在消息可以重复处理的业务场景中可以使用。

9,PTP

  Point to Point,点对点消息模型,就是基于Queue实现的消息处理方式。

10,PUB & SUB

  publish & Sububscribe,消息的发布订阅模型,是基于Topic实现的消息处理方式。

posted @ 2019-06-05 17:09  光何  阅读(641)  评论(0编辑  收藏  举报