ActiveMQ
2020-03-09 本文已影响0人
强某某
-
ActiveMQ是什么
ActiveMQ是Apache出品,之前最流行,能力强劲的开源消息总线。
1.png
ActiveMQ就是根据JMS规范实现的
-
JMS规划
2.png
-
JMS的对象模型
3.png
-
JMS的消息模型
-
Point-to-Point(P2P)/点对点
4.png
-
Publish/Subscribe(Pub/Sub) /主题(发布订阅)
5.png
-
-
JMS的消息结构
6.png
-
JMS的消息结构
7.png

ActiveMQ特性
- 支持多种编程语言
- 支持多种传输协议
- 有多种持久化方式
-
ActiveMQ支持哪些协议
9.png
-
ActiveMQ的协议连接配置
10.png
-
ActiveMQ集群部署方式
11.png
-
Madter-Slave部署方式
-
文件共享的主从
12.png
-
数据库共享的主从
13.png
多个连接数据库,但是通过锁可以实现当前只有一个broker能抢到操作数据库权限
ActiveMQ持久化方案
- JDBC
- AMQ
- KahaDB
- LevelDB
-
ActiveMQ持久化机制
p2p方式
14.png
Topic类型方式(发布订阅)

- JDBC方式
将消息存储在数据库中,例如:MySQL,DB2等
- 方便管理,但是性能低
- 可以支持强一致性
- AMQ方式
基于文件的存储方式,它具有写入速度快和容易恢复的特点,但是由于其重建索引事件过长,而且索引文件占用磁盘空间过大,所以不推荐使用,在5.x已经被废弃 - KahaDB
从ActiveMQ5.4开始默认的持久化方式,KahaDB恢复时间远小于AMQ并且使用更少的数据文件,所以可以完全替代AMQ -
LevelDB
LevelDb是google开发的一套用于持久化数据的高性能类库。LevelDB并不是一种服务,用户需要自行实现Server.是单进程的服务,能够处理十亿级别的Key-Value型数据,占内存小。
16.png
事务机制


