首页 > 代码库 > 一台机器搭建多个activemq

一台机器搭建多个activemq

原文地址:http://blog.csdn.net/wangdamingll/article/details/53183527

一 复制一份配置文件
   cd /var/activemq/  (第一个activemq的安装目录)

   cp -r conf conf1

 

二 修改配置文件
  1 修改activemq.xml
   cd conf1
   vi  activemq.xml
    
    #名称  
    brokerName="mq1" #不重复
    #数据存放文件(注意:所有connector的端口都要改)
    <persistenceAdapter>
            <kahaDB directory="${activemq.data}/kahadb_1"/> #不重复(这里是指一个解压包,启动时指定不同端口的配置文件,如果拷贝多个解压包的形式,则可以相同)

 

    </persistenceAdapter>
    
    #端口
    <transportConnectors>
            <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61617?maximumConnections=1000&amp;wireformat.maxFrameSize=104857600"/> #不重复
    </transportConnectors>
   
   修改管理端口
   vi jetty.xml
   <bean id="SecureConnector" class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
                    <property name="port" value="http://www.mamicode.com/8162" />#不重复
                    <property name="keystore" value="http://www.mamicode.com/file:${activemq.conf}/broker.ks" />
                    <property name="password" value="http://www.mamicode.com/password" />
     </bean>
 
三 、复制一个新启动程序
    
    cd /var/activemq/bin
    cp activemq activemq1




四  修改启动程序配置
    vi activemq1
    
    修改如下
    
    修改程序id
    ACTIVEMQ_PIDFILE="$ACTIVEMQ_DATA/activemq1-`hostname`.pid" #加上区别,不能重复
    
    修改配置文件路径
    
    ACTIVEMQ_CONF="$ACTIVEMQ_BASE/conf1"   #指定到第一步复制的目录




端口
if [ -z "$ACTIVEMQ_QUEUEMANAGERURL" ]; then
      ACTIVEMQ_QUEUEMANAGERURL="--amqurl tcp://localhost:61617"#加上区别,不能重复
    fi




五 启动新的
   /var/activemq/bin/activemq1 start
   
 注意:如果启动第二个老是报错,配置又和本文说的一样,不防调整一下启动顺序看一看,说不定会有惊喜。
 
补充:
步骤如下:
1、把整个conf文件夹复制一份,比如叫conf2
2、修改里面的activemq.xml文件
①brokerName不能和原来的重复
②数据存放的文件名称不能重复,比如<kahaDB directory = "${activemq.data}/kahadb2"/>
③所有涉及的transportConnector的端口,都要和原来的不一样。注意不要超出端口的范围(0-65535)
3、修改jetty.xml,把里面的默认端口号8161改成别的,不如9161
4、到bin下面,复制一个activemq,比如叫activemq2
①修改程序的id,不能和原来的重复,ACTIVEMQ_PIDFILE="$ACTIVEMQ_DATA/activemq2.pid"
②修改配置文件路径ACTIVEMQ_CONF="$ACTIVEMQ_BASE/conf2"
③修改端口,tcp://localhost:61616把61616改成和activemq.xml里面的tcp端口一致。请注意,在activemq5.9.0版本中是这么修改。
但我使用的是最新的5.12.1版本,在activemq中找不到该tcp端口的配置,折腾了半天才发现该版本把这个配置挪到了env文件。
所以就需要拷贝一份env,比如就叫env2吧,然后再env2里面把61616改成和activemq.xml里面的tcp端口一致。
最后别忘了把activemq2里面对env的引用改成env2。ACTIVEMQ_CONFIGS="/etc/default/activemq $HOME/.activemqrc $ACTIVEMQ_HOME/bin/env2"


现在你可以到activemq的bin目录下分别执行./activemq start 和 ./activemq2 start 了。这两个broker服务应该能正常启动了。
再多说一句,如果发生启动异常,可以查看activemq的data目录下的日志,默认是activemq.log,如果有报错信息,就是在这个日志中。

一台机器搭建多个activemq