目录
一、ActiveMQ简介
ActiveMQ是Apache基金会开源的消息中间件,基于Java语言开发,完全遵循JMS 1.1标准,同时支持AMQP、STOMP、MQTT、REST等多种协议。其核心目标是为企业级应用提供高可用、高性能、可扩展、安全可靠的异步通信机制,支持跨语言和跨平台集成。
核心特性:
- 消息模型:支持点对点(Queue)和发布/订阅(Topic)两种模式。
- 持久化:消息可持久化存储,确保系统重启后不丢失。
- 事务支持:提供XA事务,保障消息发送与接收的原子性。
- 集群与高可用:支持主从架构、共享存储、ZooKeeper协调的复制模式。
- 协议扩展:通过REST API、WebSockets等实现与Web应用的集成。
典型应用场景:
- 订单处理系统(异步解耦)
- 库存同步(事件驱动)
- 日志收集(发布/订阅)
- 分布式任务调度
二、ActiveMQ常用API
1. 连接与会话管理
// 创建连接工厂
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
// 创建连接
Connection connection = factory.createConnection("username", "password");
connection.start();
// 创建会话(参数:是否启用事务,确认模式)
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
2. 消息生产者(Queue示例)
// 创建队列目的地
Destination queue = session.createQueue("ORDER.QUEUE");
// 创建生产者
MessageProducer producer = session.createProducer(queue);
// 创建文本消息
TextMessage message = session.createTextMessage("Order ID: 12345");
// 发送消息(可设置持久化、优先级等)
producer.send(message, DeliveryMode.PERSISTENT, 4, 1000L);