ActiveMQ--消息存储和持久化

  1.  官网(这里的持久化和前面说的消息持久化是不同的,前面的消息持久化,事务签收都是说的MQ服务器本机,而这里的持久化说的是与本机相连的数据库的数据持久化,包括:kahadb,JDBC等)
    • 为了保证高可用,消息不仅在本机MQ存储(持久化)一份,还要再数据库中持久化一份来保证高可用。
    • http://activemq.apache.org/persistence
    • ActiveMQ--消息存储和持久化

       

  2. 是什么
    1. 面试题
    2. 回忆redis持久化机制有几种
    3. 说明:一句话:MQ服务器down机了,消息不会丢失的机制
      • ActiveMQ--消息存储和持久化 
                  
  3. 有那些
    1. AMQ Message store(了解)
    2. KahaDB 消息存储(默认)
      • 基于日志的文件,从ActiveMQ5.4开始默认的持久化插件 
      • 官网
        •  ActiveMQ--消息存储和持久化 
      • 验证当前持久化使用的默认的存储机制
        • ActiveMQ--消息存储和持久化  
            
      • 说明:http://activemq.apache.org/kahadb
        • ActiveMQ--消息存储和持久化
        • ActiveMQ--消息存储和持久化

           

            
      • KahaDB的存储原理 (微型数据,有索引有数据,有备份,有锁机制)(kahaDB目录文件下包括:四个文件一把锁)
        • ActiveMQ--消息存储和持久化
        •  ActiveMQ--消息存储和持久化

           

        • ActiveMQ--消息存储和持久化 

    3. JDBC消息存储
    4. LevelDDB消息存储(了解)基于文件存储的数据库
      • ActiveMQ--消息存储和持久化

         

         

          
    5. JDBC Messae store with ActiveMQ Joural  
  4. jdbc消息存储
    1. MQ+MySQL

      • ActiveMQ--消息存储和持久化

          

    2. 添加mysql数据库的驱动包到lib文件夹

      • ActiveMQ--消息存储和持久化

         

         

          
    3.  jdbcPersistenceAdapter配置

      • ActiveMQ--消息存储和持久化
      • ActiveMQ--消息存储和持久化

        •  

          <persistenceAdapter>
            <jdbcPersistenceAdapter dataSource= "#mysql-ds"/>
          </persistenceAdapter>

           

           

            
    4. 数据库连接池配置

      • ActiveMQ--消息存储和持久化
      • ActiveMQ--消息存储和持久化

      •  

          <bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
            <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://172.29.64.266/activemq?relaxAutoCommit=true"/>
            <property name="username" value="root"/>
            <property name="password" value="123456"/>
            <property name="poolPreparedStatements" value="true"/>
          </bean>

         

         

          
    5. 建仓sQL和建表说明

    6. 代码运行验证

    7. 数据库情况

    8. 小总结

    9. 开发有坑

        
  5. JDBC Message store with ActiveMQ Journal
上一篇:Redis进阶-Redis 4种MQ 方案对比


下一篇:Rocket MQ(1):简介