activemq基于jdbc的master/slave模式

activemq的jdbc master/slave模式,基于mysql数据库

1、添加数据源,在apache-activemq-5.11.1-1和apache-activemq-5.11.1-2的activemq.xml文件</broker>标签之后添加如下内容

<!--mysql jdbc ms-->
	<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		<property name="url" value="jdbc:mysql://localhost:3306/amq?relaxAutoCommit=true"/>
		<property name="username" value="root"/>
		<property name="password" value="123456"/>
		<property name="maxActive" value="200"/>  
		<property name="poolPreparedStatements" value="true"/>
	</bean>

2、修改持久化配置,找到persistenceAdapter修改如下内容(amq1和amq2的配置文件activemq.xml)

<persistenceAdapter>
		   <jdbcPersistenceAdapter dataDirectory="${activemq.data}" dataSource="#mysql-ds" createTablesOnStartup="false"/>
		</persistenceAdapter>

createTablesOnStartup="false" 在启动前不要配置,等集群启动过了,再配置。createTablesOnStartup是启动时创建表,只创建一次就够了。

3、将mysql的驱动包mysql-connector-java-5.1.35.jar添加到amq各节点的lib目录下

4、小结

    基于JDBC和基于共享文件系统的集群方案原理是一致的,只是把共享文件系统换成了共享数据库。

     这种集群方式比共享文件系统方案更简单,更利于分布式部署,但是如果数据库失效,那么整个集群的节点随之全部失效。换言之,需要保证数据库的可靠性,比如采用数据库集群。

5、测试访问

http://localhost:8161/ 停止其中任何一台都可访问

你可能感兴趣的:(activemq基于jdbc的master/slave模式)