文章目录
JMS
Java消息服务 (Java Message Service,即JMS)应用程序接口是一个 Java 平台中关于面向消息中间件 (MOM) 的 API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java 消息服务是一个与具体平台无关的 API。
JMS对象模型
JMS消息模型
- Point-to-Point (P2P) 点对点
- Publish/Subscribe(Pub/Sub)发布/订阅
ActiveMQ 特性
ActiveMQ 支持的协议
ActiveMQ 支持多种协议传输和传输方式,允许客户端使用多种协议连接。
ActiveMQ 支持的协议:AUTO、OpenWire、AMQP、Stomp、MQTT 等。
ActiveMQ 支持的基础传输方式:VM、TCP、SSL、UDP、Peer、Multicast、HTTP(S) 等,以及更高级的 Failover、Fanout、Discovery、ZeroConf 方式。
ActiveMQ 高可用
集群部署方案
- Master-Slave
- Broker-Cluster
- Master-Slave 与 Broker-Cluster 相结合
Master-Slave
Broker-Cluster
通过网络连接,将多个 broker 组合,对外构成一个整体,集群间共享队列和主题列表。
二者组合
配置多项
ActiveMQ 持久化方案
ActiveMQ 的持久化方案有:
- JDBC
- AMQ
- KahaDB
- LevelDB
Queue 的持久化
Topic 的持久化
JDBC方式
将消息存储到数据库中
AMQ 方式
基于文件的存储方式,由于重建索引时间长,且索引文件大,已被弃用。
KahaDB
ActiveMQ 5.4后的默认持久化方式。
LevelDB
已被弃用。
ActiveMQ 事务
事务实现机制