spring+activity+mysql集群
第一步:先配置好第一个activityMQ在broker外面加入数据库的连接信息,并将mysql的mysql-connector-java.jar,即java连接mysql的jar包放入apache-activemq-5.14.1\lib目录下
第二步:复制配置好的第一个
修改端口:如果不在一台服务器上是可以不改端口号的,Activemq默认主要使用2个端口,8161(控制台使用)、61616(提供服务的端口)
(1)activemq.xml,默认是61616
(2)jetty.xml,默认是8161 第三个就改为61636与8163
第三步:启动
只有第一个启动的是master才能正常使用,其他的都是slave做等待,在Master挂了之后,会自动分配一个slave为master
第四步:客户端连接
客户端连接:
pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.3.3.RELEASE</spring.version>
<activemq>5.11.4</activemq>
<!-- <activemq>5.14.1</activemq> --> <!-- 5.12.0开始以后的版本jar包中包含了spring,与当前引入的spring冲突,导致起不来服务,如果用高版本的activitymq则须把activemq-all中的spring删除,然后再引入就可以了 -->
</properties>
<dependencies>
<!-- Active MQ -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>${activemq}</version>
</dependency>
<!-- 集成JMS -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- xbean 如<amq:connectionFactory /> -->
<dependency>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-spring</artifactId>
<version>4.5</version>
</dependency>
</dependencies>
ActiveMQ 的客户端只能访问Master的Broker,其他处于Slave的Broker不能访问。所以客户端连接Broker应该使用failover协议。
配置文件地址应为:
failover:(tcp://192.168.1.100:61611,tcp://192.168.1.100:61612,tcp://192.168.1.100:61613)?randomize=false
贴出spring的配置
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="sessionCacheSize" value="100" />
<property name="targetConnectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<!-- MQ地址 -->
<!-- <property name="brokerURL" value="tcp://localhost:61616" /> -->
<!-- 基于jdbc的集群连接 -->
<property name="brokerURL" value="failover:(tcp://192.168.1.100:61616,tcp://192.168.1.100:61626,tcp://192.168.1.100:61636)?randomize=false" />
<!-- 是否异步发送 -->
<property name="useAsyncSend" value="true" />
</bean>
</property>
</bean>
页:
[1]