- ActiveMQ简介
a. 多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
b. 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
c. 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去
d. 通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上
e. 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
f. 支持通过JDBC和journal提供高速的消息持久化
g. 从设计上保证了高性能的集群,客户端-服务器,点对点
h. 支持Ajax, 同时支持与Axis的整合, WebServices
i. 可以很容易的调用内嵌JMS provider,进行测试
- 相关概念
a. Destination (目的地)
目的地,JMS Provider(消息中间件)负责维护,用于对Message进行管理的对象。MessageProducer需要指定Destination才能发送消息,MessageConsumer需要指定Destination才能接收消费消息
b. Producer(生产者)
消息生成者,负责发送Message到目的地。应用接口为MessageProducer。在JMS规范中,所有的标准定义都在javax.jms包中。
c. Consumer(消费者)
消息消费者,负责从目的地中消费Message。应用接口为MessageConsumer
d. Message(消息)
消息,消息封装一次通信的内容。常见类型有:StreamMessage、BytesMessage、TextMessage、ObjectMessage、MapMessage
e. ConnectionFactory(链接工厂)
链接工厂, 用于创建链接的工厂类型。 注意,不能和JDBC中的ConnectionFactory混淆
f. Connection(链接)
链接. 用于建立访问ActiveMQ连接的类型, 由链接工厂创建. 注意,不能和JDBC中的Connection混淆
g. Session(会话)
会话, 一次持久有效有状态的访问. 由链接创建. 是具体操作消息的基础支撑。
h. Queue & Topic
(1). Queue是队列目的地,Topic是主题目的地。都是Destination的子接口
(2). Queue特点: 队列中的消息,默认只能由唯一的一个消费者处理。一旦处理消息删除。
(3). Topic特点:主题中的消息,会发送给所有的消费者同时处理。只有在消息可以重复处理的业务场景中可使用
i. PTP
Point to Point。点对点消息模型。就是基于Queue实现的消息处理方式。
j. PUB & SUB
Publish & Subscribe 。消息的发布/订阅模型。是基于Topic实现的消息处理方式