ActiveMQ(消息中间件)

发布于:2025-09-12 ⋅ 阅读:(21) ⋅ 点赞:(0)

目录

一、ActiveMQ简介

二、ActiveMQ常用API

1. 连接与会话管理

2. 消息生产者(Queue示例)

3. 消息消费者(Queue示例)

4. Topic模型示例

三、ActiveMQ消息处理

1. 消息确认机制

2. 消息持久化

3. 消息优先级

4. 消息过期

四、Topic模型

1. 核心特性

2. 持久化订阅示例

3. Topic vs Queue对比

4. 性能考量


一、ActiveMQ简介

ActiveMQ是Apache基金会开源的消息中间件,基于Java语言开发,完全遵循JMS 1.1标准,同时支持AMQP、STOMP、MQTT、REST等多种协议。其核心目标是为企业级应用提供高可用、高性能、可扩展、安全可靠的异步通信机制,支持跨语言和跨平台集成。

核心特性

  1. 消息模型:支持点对点(Queue)和发布/订阅(Topic)两种模式。
  2. 持久化:消息可持久化存储,确保系统重启后不丢失。
  3. 事务支持:提供XA事务,保障消息发送与接收的原子性。
  4. 集群与高可用:支持主从架构、共享存储、ZooKeeper协调的复制模式。
  5. 协议扩展:通过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);

网站公告

今日签到

点亮在社区的每一天
去签到