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 管理控制台
- 支持消息持久化到数据库或文件
- 支持事务消息和分布式事务