黑马程序员技术交流社区

标题: [太原校区]ActiveMQ持久化 [打印本页]

作者: liuchengwei1    时间: 2018-12-17 20:30
标题: [太原校区]ActiveMQ持久化
ActiveMQ持久化
1.   说明
使用springactivemq环境
2.   ActiveMq topic持久化2.1. AMQ方式 (了解一下)
AMQ是一种文件存储形式,它具有写入速度快和容易恢复的特点。消息存储在一个个文件中,文件的默认大小为32M,如果一条消息的大小超过了32M,那么这个值必须设置大一点。当一个存储文件中的消息已经全部被消费,那么这个文件将被标识为可删除,在下一个清除阶段,这个文件被删除。AMQ适用于ActiveMQ5.3之前的版本
2.2. kafadb持久到文件
KahaDB   ActiveMQ 5.4默认持久化插件
2.2.1.   KahaDB主要特性
A、日志形式存储消息;
B、消息索引以B-Tree结构存储,可以快速更新;
B-Tree存储结构参考:https://www.cnblogs.com/gym333/p/6877023.html
C、完全支持JMS事务;
D、支持多种恢复机制;
2.2.2.    修改activemq.xml文件
a)     位置:
b)     修改broker
c)      修改persistenceAdapter

2.2.3.    生产者配置文件
2.2.4.    消费者配置文件
消息者设置需要设置标识符clientId即接收者ID

2.3. jdbc持久化2.3.1.    上传jar包到activemq/lib

2.3.2.    修改activemq.xml
其中数据库对应的地址请修改。


2.3.3.    启动生产者,自动创建三个表

activemq_acks:ActiveMQ的签收信息。
用于存储订阅关系。如果是持久化Topic,订阅者和服务器的订阅关系在这个表保存。
activemq_lock:ActiveMQ的锁信息。
这张表只有在集群环境中才会用到
activemq_msgs:ActiveMQ的消息的信息
用于存储消息,Topic和Queue消息都会保存在这张表中

2.4. LevelDB方式
从ActiveMQ 5.6版本之后,又推出了LevelDB的持久化引擎。
目前默认的持久化方式仍然是KahaDB,不过LevelDB持久化性能高于KahaDB,可能是以后的趋势。
在ActiveMQ 5.9版本提供了基于LevelDB和Zookeeper的数据复制方式,用于Master-slave方式的首选数据复制方案。
2.5. 测试:
在发布/订阅模下,启动两个生产者,再启动消费者,可实现持久化。

1.png (1.92 KB, 下载次数: 8)

1.png

2.png (5.53 KB, 下载次数: 10)

2.png

3.png (5.2 KB, 下载次数: 12)

3.png

4.png (16.58 KB, 下载次数: 11)

4.png

5.png (18.56 KB, 下载次数: 26)

5.png

6.png (19.04 KB, 下载次数: 12)

6.png

7.png (31.49 KB, 下载次数: 12)

7.png

作者: 张志辉    时间: 2018-12-19 07:35
占个沙发
作者: 张兆秋    时间: 2018-12-19 09:04
学到了
作者: cuichang1    时间: 2018-12-19 10:56

作者: 郝永亮    时间: 2018-12-19 13:33
优秀
作者: Vicky韦    时间: 2018-12-19 13:48
专业
作者: liudongjie    时间: 2018-12-19 18:50

作者: Julien27    时间: 2018-12-19 20:30
消息中间件更多知识见: http://www.uml.org.cn/zjjs/201802111.asp
作者: 一个人一座城0.0    时间: 2018-12-20 12:34
看看不说话
作者: 达摩侠    时间: 2018-12-20 12:45
顶顶顶顶顶起来
作者: renhua    时间: 2018-12-20 13:30





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2