Skip to content

ActiveMQ

简介

Apache ActiveMQ 是流行的开源消息中间件,完全支持 JMS(Java Message Service)规范,提供可靠的消息传递机制。

JMS 规范

JMS 是 Java 平台的消息服务标准,定义了两种消息模型:

点对点模型(Queue)

每条消息只有一个消费者:

java
// 生产者
Queue queue = session.createQueue("myQueue");
MessageProducer producer = session.createProducer(queue);
producer.send(session.createTextMessage("Hello"));

// 消费者
Queue queue = session.createQueue("myQueue");
MessageConsumer consumer = session.createConsumer(queue);
Message message = consumer.receive();

发布/订阅模型(Topic)

每条消息可以有多个消费者:

java
// 发布者
Topic topic = session.createTopic("myTopic");
MessageProducer publisher = session.createProducer(topic);
publisher.send(session.createTextMessage("通知消息"));

// 订阅者
Topic topic = session.createTopic("myTopic");
MessageConsumer subscriber = session.createConsumer(topic);
subscriber.setMessageListener(msg -> {
    System.out.println("收到: " + ((TextMessage)msg).getText());
});

ActiveMQ 特性

  • 支持多种协议:OpenWire、AMQP、STOMP、MQTT
  • 提供集群和高可用方案
  • 内置 Web 管理控制台
  • 支持消息持久化到数据库或文件
  • 支持事务消息和分布式事务