activeMQ JDBC Master Slave

为了保证activeMQ的高可用性及避免activeMQ故障,activeMQ中提供了几种集群方案解决此类问题,详细文字说明阅读如下文章:

1\ActiveMQ集群应用

2\ActiveMQJDBC主从集群

3\解决单点故障:JDBCMasterSlave

本人应用的为集群方案中的一种,JDBCMasterSlave,说明及好处就看如上外链文章了,上正题,方案如何实施及程序如何调用

1\配置多个activeMQ,其实就是复杂原有activeMQ安装文件,修改如下配置:

(1)\ brokerName
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost02" dataDirectory="${activemq.data}" useJmx="true">
(2)\ 服务端口
<transportConnectors>
    <transportConnector name="openwire" uri="tcp://0.0.0.0:61618"/>
</transportConnectors>
(3)\ useDatabaseLock 为true
<persistenceAdapter>
    <jdbcPersistenceAdapter dataDirectory="${activemq.data}" dataSource="#mysql-ds" createTablesOnStartup="false" useDatabaseLock="true"/>
</persistenceAdapter>

注:useDatabaseLock="true" 必需设置,不然在保存数据时会报数据主键重复异常

2\程序调用

原:

new ActiveMQConnectionFactory("admin","xxxxxx","tcp://0.0.0.0:61616");

现:

new ActiveMQConnectionFactory("admin","xxxxxx","failover:(tcp://localhost:61616,tcp://localhost:61617,tcp://localhost:61618)");

完事,就这么简单,END。。。。。。

相关推荐