码迷,mamicode.com
首页 > 数据库 > 详细

ActiveMQ消息持久化-JDBC

时间:2017-09-16 11:36:41      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:activemq   jdbc   

JDBC

        可以将消息存储到数据库中,例如:Mysql、SQL Server、Oracle、DB2。

        使用JDBC持久化方式,数据库会创建3个表:activemq_msgs,activemq_acks和activemq_lock。

一、配置方式(Oracle):

conf/acticvemq.xml

<beans>
  <broker brokerName="test-broker" persistent="true" xmlns="http://activemq.apache.org/schema/core">
    <persistenceAdapter>
      <jdbcPersistenceAdapter dataSource="#oracle-ds" createTablesOnStartup="false"/>
    </persistenceAdapter>
  </broker>
  <bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
    <property name="url" value="jdbc:oracle:thin:@192.168.3.123:1521:orcl"/>
    <property name="username" value="db_name"/>
    <property name="password" value="db_password"/>
    <property name="maxActive" value="200"/>
    <property name="poolPreparedStatements" value="true"/>
  </bean>
</beans>

二、数据库表信息

    1,activemq_msgs用于存储消息,Queue和Topic都存储在这个表中:

            ID:自增的数据库主键

            CONTAINER:消息的Destination

            MSGID_PROD:消息发送者客户端的主键

            MSG_SEQ:是发送消息的顺序,MSGID_PROD+MSG_SEQ可以组成JMS的MessageID

            EXPIRATION:消息的过期时间,存储的是从1970-01-01到现在的毫秒数

            MSG:消息本体的Java序列化对象的二进制数据

            PRIORITY:优先级,从0-9,数值越大优先级越高


    2,activemq_acks用于存储订阅关系。如果是持久化Topic,订阅者和服务器的订阅关系在这个表保存:

主要的数据库字段如下:

        CONTAINER:消息的Destination

        SUB_DEST:如果是使用Static集群,这个字段会有集群其他系统的信息

        CLIENT_ID:每个订阅者都必须有一个唯一的客户端ID用以区分

        SUB_NAME:订阅者名称

        SELECTOR:选择器,可以选择只消费满足条件的消息。条件可以用自定义属性实现,可支持多属性AND和OR操作

        LAST_ACKED_ID:记录消费过的消息的ID。


    3,activemq_lock在集群环境中才有用,只有一个Broker可以获得消息,称为Master Broker,

其他的只能作为备份等待Master Broker不可用,才可能成为下一个Master Broker。

这个表用于记录哪个Broker是当前的Master Broker。



参考资料:

http://www.cnblogs.com/binyue/p/5371479.html

ActiveMQ消息持久化-JDBC

标签:activemq   jdbc   

原文地址:http://2005713.blog.51cto.com/1995713/1965777

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!