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>

 

 

posted @ 2016-11-01 10:11  这个名字想了很久~  阅读(2025)  评论(0编辑  收藏  举报