美文网首页JAVA技术文章
一台机器搭建多个activemq

一台机器搭建多个activemq

作者: rejoice001 | 来源:发表于2017-12-05 23:20 被阅读15次

    原文地址: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="8162" />#不重复
    <property name="keystore" value="file:${activemq.conf}/broker.ks" />
    <property name="password" value="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

        本文链接:https://www.haomeiwen.com/subject/hzvhixtx.html