### 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币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 指针扫描和内存遍历二合一工具
- 基于JavaScript的在线考试系统(编号:65965158)(1).zip
- 五相电机双闭环矢量控制模型-采用邻近四矢量SVPWM-MATLAB-Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成
- Linux下的cursor安装包
- springboot-教务管理系统(编号:62528147).zip
- 3dmmods_倾城系列月白_by_白嫖萌新.zip
- SVPWM+死区补偿(基于电流极性)+高频注入法辨识PMSM的dq轴电感(离线辨识)-simulink
- 微信跑腿小程序的设计与实现
- 基于 Java 实现的上位机通讯程序,可与单片机进行数据交换
- screentshot-2024.12.22-20.45.35.jpg
- 1
- 2
前往页