Shell实战之一键搭建ActiveMq集群-yellowcong

脚本下载地址http://yellowcong.qiniudn.com/activemq-cluster-install.sh,里面是我固定写死的的ip端口好和配置情况,大家可以根据自己的需求进行更改。通过一键安装ActiveMq集群,老爽了。

架构

ActiveMQ架构

节点控制端口管控台端口目录
192.168.100.10:62621515118161/usr/local/activemq-cluster/node1
192.168.100.10:62622515128162/usr/local/activemq-cluster/node2
192.168.100.10:62623515138163/usr/local/activemq-cluster/node3

脚本使用

方法1

#下载脚本
wget http://yellowcong.qiniudn.com/activemq-cluster-install.sh

#执行
chmod a+x activemq-cluster.sh

#执行脚本
./activemq-cluster.sh

截图可以查看到脚本赋予权限
这里写图片描述

方法2

#获取文件,并执行
wget -qO- http://yellowcong.qiniudn.com/activemq-cluster-install.sh | sh

运行结果
这里写图片描述

原理介绍

通过sed 进行配置文件的修改和添加操作

#创建一个执行脚本
touch active-cluster.sh && chmod a+x active-cluster.sh

#编辑脚本
vim  active-cluster.sh

#创建目录
mkdir node4

#下载文件到activemq-cluster 目录
wget http://yellowcong.qiniudn.com/apache-activemq-5.11.1-bin.tar.gz -d /usr/local/activemq-cluster

#解压到node4文件夹
tar -zxvf apache-activemq-5.11.1-bin.tar.gz -C node4/

#修改jetty端口
sed -i 's/8161/testestes/g' node4/apache-activemq-5.11.1/conf/jetty.xml

#修改brokerName
sed -i 's/brokerName="localhost"/brokerName="doubi"/g' node4/apache-activemq-5.11.1/conf/activemq.xml


#修改persistenceAdapter
#删除
sed -i '/kahaDB directory/d' node4/apache-activemq-5.11.1/conf/activemq.xml

#添加数据
 sed -i '/<\/persistenceAdapter>/i \
<replicatedLevelDB \
     directory="${activemq.data}/leveldb" \
     replicas="3" \
     bind="tcp://0.0.0.0:62621"  \
     zkAddress="192.168.100.10:2182,192.168.100.10:2183,192.168.100.10:2184" \
     zkPassword=""  \
     hostname="yellowcong"  \
     sync="local_disk" \
     zkPath="/activemq/leveldb-stores" \
/> \
' node4/apache-activemq-5.11.1/conf/activemq.xml
#上面这段多行替换代码中, 这个 '  需要单独在一行,才能多行替换的时候 \ 转义为 回车

#修改通信端口51511
sed -i 's#/tcp://0.0.0.0:61616#/tcp://0.0.0.0:51511#' node4/apache-activemq-5.11.1/conf/activemq.xml

单个节点添加

#!/bin/bash

#节点的路径
NODE_PATH=/usr/local/activemq-cluster/node4

#配置文件的路径
NODE_CONF=$NODE_PATH/apache-activemq-5.11.1/conf

#创建节点目录
mkdir -p $NODE_PATH

#下载文件
wget http://yellowcong.qiniudn.com/apache-activemq-5.11.1-bin.tar.gz -d /usr/local/activemq-cluster

#解压到node4文件夹
tar -zxvf apache-activemq-5.11.1-bin.tar.gz -C $NODE_PATH

#修改jetty端口
sed -i 's/8161/testestes/g' $NODE_CONF/jetty.xml

#修改brokerName
sed -i 's/brokerName="localhost"/brokerName="doubi_test"/g' $NODE_CONF/activemq.xml

#修改persistenceAdapter
#删除
sed -i '/kahaDB directory/d' $NODE_CONF/activemq.xml

#添加db和zookeeper信息
sed -i '/<\/persistenceAdapter>/i \
<replicatedLevelDB \
     directory="${activemq.data}/leveldb" \
     replicas="3" \
     bind="tcp://0.0.0.0:62621"  \
     zkAddress="192.168.100.10:2182,192.168.100.10:2183,192.168.100.10:2184" \
     zkPassword=""  \
     hostname="yellowcong"  \
     sync="local_disk" \
     zkPath="/activemq/leveldb-stores" \
/> \
' $NODE_CONF/activemq.xml



#修改通信端口51511
#这个带斜杠的修改 ,都变成 #了
sed -i 's#tcp://0.0.0.0:61616#tcp://0.0.0.0:51511#' $NODE_CONF/activemq.xml

#查看配置的信息
cat $NODE_CONF/activemq.xml

多节点添加脚本代码

activemq-cluster.sh

我创建了activemq-cluster.sh 脚本,直接就可以执行下载并执行mq

#!/bin/bash

#外部访问端口
SERVICE_IPS=(62621 62622 62623)

#管控台端口
WEB_IPS=(8161 8162 8163)

#控制端口,用于ActiveMq内部交流用
CONTROL_IPS=(51511 51512 51513)

#nodes name
NODE_NAMES=(node1 node2 node3)

#brokenName
BROKER_NAME="yellowcong-cluster"

#zookeeper的服务器地址
ZOOKEEP_URL="192.168.100.10:2182,192.168.100.10:2183,192.168.100.10:2184"

#节点的目录文件夹
CLUSTER_HOME=/usr/local/activemq-cluster

#主机名称
HOSTNAME="yellowcong"
#ActiveMQ 在Zookeeper配置的地址
ZK_PATH="/activemq/leveldb-stores"
#文件下载
downloadFile(){

        #创建文件夹
        echo $CLUSTER_HOME
    mkdir -p  $CLUSTER_HOME

        #下载到目标文件夹
        wget http://yellowcong.qiniudn.com/apache-activemq-5.11.1-bin.tar.gz -O $CLUSTER_HOME/apache-activemq-5.11.1-bin.tar.gz

    echo "下载到了\t"$CLUSTER_HOME
}

#$1 第一个参数 文件夹名称
#$2 第二个参数 web 访问的ip名称
#$3 第三个参数 内部控制的端口
#$4 第四个参数 提供服务的端口
createNode(){


        #节点的路径
        NODE_PATH=$CLUSTER_HOME/$1

        #创建目录
        mkdir $NODE_PATH

        #配置文件的路径
        NODE_CONF=$NODE_PATH/apache-activemq-5.11.1/conf

    echo "解压文件中............."
        #解压到node4文件夹
        tar -zxvf $CLUSTER_HOME/apache-activemq-5.11.1-bin.tar.gz -C $NODE_PATH  >/dev/null

        #修改jetty端口
        sed -i 's/8161/'$2'/g' $NODE_CONF/jetty.xml

        #修改brokerName
        sed -i 's/brokerName="localhost"/brokerName="'$BROKER_NAME'"/g' $NODE_CONF/activemq.xml

        #修改persistenceAdapter
        #删除
        sed -i '/kahaDB directory/d' $NODE_CONF/activemq.xml

        #添加db和zookeeper信息
        sed -i '/<\/persistenceAdapter>/i \
        <replicatedLevelDB \
                directory="${activemq.data}/leveldb" \
                replicas="3" \
                bind="tcp://0.0.0.0:'$4'"  \
                zkAddress="'$ZOOKEEP_URL'" \
                zkPassword=""  \
                hostname="'$HOSTNAME'"  \
                sync="local_disk" \
                zkPath="'$ZK_PATH'" \
        /> \
        ' $NODE_CONF/activemq.xml



        #修改通信端口51511
        #这个带斜杠的修改 ,都变成 #了
        sed -i 's#tcp://0.0.0.0:61616#tcp://0.0.0.0:'$3'#' $NODE_CONF/activemq.xml

        echo $1“配置完成”
}

#启动mq的操作
start_mq(){
    i=0
    #开启服务
    while [[ i -lt ${#NODE_NAMES[@]} ]]
    do      
         #节点名称
            node_name=${NODE_NAMES[i]}

         #节点的路径
            BIN_PATH=$CLUSTER_HOME/$node_name/apache-activemq-5.11.1/bin
        echo $BIN_PATH/activemq    
        #启动服务
        sh $BIN_PATH/activemq start
        let i++
    done
}
#执行下载命令
downloadFile

#创建节点
while [[ i -lt ${#NODE_NAMES[@]} ]]
do
    #节点名称
        node_name=${NODE_NAMES[i]}
    #节点提供activemq服务的ip
    service_ip=${SERVICE_IPS[i]}
    #节点内部沟通的ip
    control_ip=${CONTROL_IPS[i]}
    #管控台访问的ip
    web_ip=${WEB_IPS[i]}


    echo "节点路径"-${NODE_NAMES[i]}
    echo “服务ip地址”-${SERVICE_IPS[i]}
    echo “控制端ip地址”-${CONTROL_IPS[i]}
    echo “WEB管控台ip地址”-${WEB_IPS[i]}

    #创建节点   
    createNode $node_name $web_ip $control_ip $service_ip


        #在linux中一定要注意空格了,这个i++ 不能有空格
        let i++
done
#启动mq
start_mq

停止activemq方法1

这种直接杀死进程的方式,比较的暴力

#查看目录
jps

#杀掉进程
kill 进程号

这里写图片描述

停止activemq方法2

这种直接杀死进程的方式,比较的暴力

#通过activemq 来进行关闭
activemq-cluster/node1/apache-activemq-5.11.1/bin/activemq stop
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂飙的yellowcong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值