activeMQ面试总结


1. 大量的消息每页被消费,能否发生oom异常?
1. 可以控制每个消息队列中数据的大小,不允许无线填充数据,避免该队列多大,导致过度消耗系统资源问题; 可以控制队列的内存大小;


2. activeMQ数据丢失怎么办?

可以使用对数据进行持久化JDBC,AMQ(日志文件),KahaDB和LevelDB,




3. activeMQ如何持久化数据?
*** 准确答案:http://www.360doc.com/content/11/1027/19/1542811_159664188.shtml
            本文只介绍三种方式,分别是持久化为文件,MYSql,Oracle。


***很准确的答案:https://www.jianshu.com/p/deb1816271d1
以mysql为例子,说明如何持久化,并解释了3张表机构;


 
**** 更准确的答案: https://www.jianshu.com/p/43cd33dc96af

        提到了多种持久化方案的优缺点;

ActiveMQ的消息持久化机制有JDBC,AMQ(日志文件),KahaDB和LevelDB
KahaDB是从ActiveMQ 5.4开始默认的持久化插件
从ActiveMQ 5.6版本之后,又推出了LevelDB的持久化引擎。目前默认的持久化方式仍然是KahaDB,不过LevelDB持久化性能高于KahaDB,可能是以后的趋势。
在ActiveMQ 5.9版本提供了基于LevelDB和Zookeeper的数据复制方式,用于Master-slave方式的首选数据复制方案。


 

*其他參考: http://www.360doc.com/content/11/1027/19/1542811_159664912.shtml

利用消息队列的异步策略,可以从很大程序上缓解程序的压力,但是,如果MQ所在的机器down机了,又如果队列中的数据不是持久的就会发生数据丢失,后果是可想而知的, 所以消息的持久化是不可不讨论的话题。



方式一:利用mysql持久化activeMQ数据 
1)改动部分主要是设置了mysql的datasource声明, 还有就是采用mysql作为persistenceAdapter,并声明如下;
<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
				<property name="driverClassName" value="com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值