### ActiveMQ知识点详解 #### 一、ActiveMQ简介与特性 **ActiveMQ**是由Apache基金会提供的一个开源消息中间件,其强大的功能与灵活性使其成为业界最受欢迎的消息传递解决方案之一。ActiveMQ支持**Java消息服务(JMS)1.1**以及**J2EE 1.4**规范,并兼容各种JVM环境和Web容器。 - **特性及优势** - **规范支持**:实现了JMS 1.1标准,同时兼容J2EE 1.4及以上版本。 - **跨平台性**:可在任何JVM上运行,并且兼容大多数Web容器。 - **多语言客户端支持**:除了Java外,还支持C/C++、AJAX、ActionScript等多种编程语言的客户端。 - **多协议支持**:包括STOMP、OpenWire、REST等在内的多种通信协议。 - **Spring集成**:具有优秀的Spring框架集成能力。 - **高性能**:比JBossMQ快10倍左右。 - **社区支持**:得益于Apache的强大社区支持,ActiveMQ拥有持续的发展和改进。 #### 二、ActiveMQ的下载与部署 1. **下载**:访问[Apache ActiveMQ官网](http://activemq.apache.org/activemq-510-release.html),下载适用于Windows的5.1.0版本。 2. **安装**:将下载的压缩包解压至所需路径,例如`D:\apache-activemq-5.1.0`。 3. **启动服务器** - 直接通过`bin\activemq.bat`启动。 - 在JVM中嵌入式启动:进入`example`目录,执行`ant embedBroker`命令。 4. **管理界面**:通过浏览器访问`http://localhost:8161/admin`来管理ActiveMQ服务器。 #### 三、运行示例程序 - **Queue消息示例** - 启动**Queue消息消费者**:进入`example`目录,执行`ant consumer`命令。 - 启动**Queue消息生产者**:同样进入`example`目录,执行`ant producer`命令。简要流程为生产者发送消息,消费者接收消息,发送/接收2000个消息后自动关闭。 - **Topic消息示例** - 启动**Topic消息消费者**:执行`ant topic-listener`命令。 - 启动**Topic消息生产者**:执行`ant topic-publisher`命令。简要流程为生产者每轮发送2000条消息,并等待获取消费者的处理结果报告,完成10轮后统计全局发送时间。 #### 四、Queue与Topic的区别 1. **Queue**执行**Load Balancer**语义: - 一条消息只能被一个消费者接收。 - 如果消息发送时没有可用的消费者,则消息会被保存直到有消费者可用。 - 若消费者接收到消息后不进行处理,则消息会转发给其他消费者。 - 多个消费者可以共享一个Queue,并在其中进行负载均衡。 2. **Topic**实现**Publish/Subscribe**语义: - 发布者将消息发送到Topic后,所有订阅此Topic的订阅者都会收到消息的副本。 - 当消息代理接收到消息时,只有活跃订阅者才能获取消息副本。 - 根据订阅者的状态不同,分为**非持久订阅(Nondurable subscription)**和**持久化订阅(Durable subscription)**两种模式。 #### 五、Point-to-Point(点对点)消息模式开发流程 1. **生产者(Producer)开发流程**(以`ProducerTool.java`为例): 1. 创建**Connection**:基于URL、用户名和密码创建JMS连接。 2. 创建**Session**:基于Connection创建Session,并设置是否支持事务和确认模式。 3. 创建**Destination**对象:指定消息的主题名称。 4. 创建**MessageProducer**:基于Destination创建MessageProducer对象,并设置其持久性模式。 5. 发送消息到队列(Queue):封装TextMessage消息并通过MessageProducer的send方法发送。 2. **消费者(Consumer)开发流程**(以`ConsumerTool.java`为例): - 实现**MessageListener**接口:消费者类必须实现MessageListener接口,在`onMessage()`方法中处理接收到的消息。 通过以上介绍,我们对ActiveMQ有了较为全面的认识,包括它的特性、部署过程以及如何开发简单的消息传递应用程序。无论是对于新手还是有一定经验的开发者来说,掌握这些核心概念都是至关重要的。
剩余10页未读,继续阅读
- 粉丝: 1
- 资源: 48
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
- (源码)基于Nio实现的Mycat 2.0数据库代理系统.zip
- (源码)基于Java的高校学生就业管理系统.zip
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- 1
- 2
前往页