activemq入门总结

最近两天闲暇时候,对activemq做了入门研究,以下心得:

发送消息可以做持久化,非持久化不能保证可靠性,不考虑。持久化分为下面3种。

1. AMQ Message Store

   
     AMQ Message Store是ActiveMQ 5.0 缺省的持久化存储
     Message commands被保存到transactional journal(由rolling data logs组成)。
     Messages被保存到data logs中,同时被reference store进行索引以提高存取速度。


     Date logs由一些单独的data log文件组成,缺省的文件大小是32M,如果某个消息的大小超过了data log文件的大小,那么可以修改配置以增加data log文件的大小。如果某个data log文件中所有的消息都被成功消费了,那么这个data log文件将会被标记,以便在下一轮的清理中被删除或者归档。

2. Kaha Persistence

  
     Kaha Persistence 是一个专门针对消息持久化的解决方案。
    它对典型的消息使用模式进行了优化。在Kaha中,数据被追加到data logs中。当不再需要log文件中的数据的时候,log文件会被丢弃。

3. JDBC Persistence

     目前支持的数据库有Apache Derby, Axion, DB2, HSQL, Informix, MaxDB, MySQL, Oracle, Postgresql, SQLServer, Sybase。

     消息持久化到数据库,如果被消费者消费掉,也会从数据库中删除记录。



工作模式:

Pure Master Slave模式

         可以实现消息的双机热备功能;如果master挂了,服务会有slave接管;
         但已经挂了的master服务,重新启动时候修复的时候,必须停掉正在运行的先前的slave;

JDBC Master Slave模式

         可以实现消息的多点热备功能,一旦master挂掉,剩余的slave中必定会有一个竞争(通过数据库事务锁)成为master来接管服务,已经挂了的master,重启后自动变成slave;Master、Slave的交替完全是即时的,自动的,无需重启任何broker;推荐方案

        

本人JDBC Master Slave模式下,持久化第三种JDBC Persistence(采用mysql)测试过,测试采用版本为activemq-5.6.0。

测试配置文件只要放在activemq 的conf目录下,在bin下启动使用

    activemq xbean:../conf/activemq01.xml

    activemq xbean:../conf/activemq01.xml

命令,记得是在2个命令行窗口中,记得修改配置文件里面的数据源,还要把mysql驱动放在activemq的lib下面。

具体配置见附件

猜你喜欢

转载自sd-zyl.iteye.com/blog/1714843