基于文件共享的activemq高可用集群方案
一、将activemq压缩文件解压到目标文件夹。
二、实现单机部署多个mq应用
1. 将bin下的activemq启动文件复制一份并修改文件名称为activemq2。
2. 将conf文件复制一份,并命名为conf2 修改brokerName的值,同一集群内不同节点避免重名。修改brokerName的值,同一集群内不同节点避免重名。
3. 修改conf2下的activemq.xml配置文件
1).修改brokerName的值,同一集群内不同节点避免重名。
2).修改标签中的5个端口号,避免端口冲突。
4.修改conf2下的jetty.xml配置文件
1).修改mq服务的端口号,避免端口冲突。
5. 修改bin下activemq2
a) .修改名字
将
ACTIVEMQ_PIDFILE="$ACTIVEMQ_DATA/activemq-`hostname`.pid"
修改为
ACTIVEMQ_PIDFILE="$ACTIVEMQ_DATA/activemq2-`hostname`.pid"
b).修改对应的配置文件
ACTIVEMQ_CONF="$ACTIVEMQ_BASE/conf"修改为
ACTIVEMQ_CONF="$ACTIVEMQ_BASE/conf2"
c).修改端口号
ACTIVEMQ_QUEUEMANAGERUAL="--amqurl tcp://localhost:原端口" 修改为
ACTIVEMQ_QUEUEMANAGERUAL="--amqurl tcp://localhost:新端口 "
到此,单台服务器上的双结点布置完成。如果单台服务器需要部署超过两个节点的服务,重复上述操作即可。
启动activemq、activemq2查看服务器是否可以正常启动。
三、多台服务器组成集群
1.同样按前述三个步骤,部署其他服务器上的activemq。
2.由于多结点数据一致需要使用共享文件夹。需要将不同服务器的文件夹mount通。(可以使用已经mount通的文件夹)。
3.将已经启动过的activemq下的data文件夹复制到mount的文件夹下,作为共享的持久化数据使用。
注意data目录下需要包含kahadb相关文件再复制。
如果没data下没有kahadb,启动activemq就可以自动生成相关目录。
4.修改conf文件下的activemq.xml配置文件内容。
将持久化目录路径修改为新的mount下的文件路径。
四、修改数据文件权限
如果activemq读取data/kahadb文件遇到mount导致的权限问题,可以改为root启动activemq,并修改data/kahadb文件权限。