首页 > 代码库 > 一台机器搭建多个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&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