Shell实战之一键搭建ActiveMq集群-yellowcong
2017-12-09 20:02
405 查看
脚本下载地址http://yellowcong.qiniudn.com/activemq-cluster-install.sh,里面是我固定写死的的ip端口好和配置情况,大家可以根据自己的需求进行更改。通过一键安装ActiveMq集群,老爽了。
截图可以查看到脚本赋予权限
运行结果
我创建了activemq-cluster.sh 脚本,直接就可以执行下载并执行mq
架构
ActiveMQ架构节点 | 控制端口 | 管控台端口 | 目录 |
---|---|---|---|
192.168.100.10:62621 | 51511 | 8161 | /usr/local/activemq-cluster/node1 |
192.168.100.10:62622 | 51512 | 8162 | /usr/local/activemq-cluster/node2 |
192.168.100.10:62623 | 51513 | 8163 | /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
相关文章推荐
- Shell实战之一键搭建FastDFs-yellowcong
- 用shell脚本一键搭建LNMP环境实战
- ActiveMQ之集群(主从)搭建-yellowcong
- Shell实战之一键自动部署Zookeeper-yellowcong
- shell 脚本实战笔记(7)--集群网络相关知识和环境搭建
- hadoop集群一键自动启动和自动关闭shell脚本 原创 2017年07月23日 17:58:45
- activemq集群搭建Demo
- JAVA架构师课程(大数据,分布式事物解决方案,大型互联网项目,大型金融项目,高并发集群解决方案)实战开发[技术 activeMQ,zookeeper,http,支付,团购,dubbox,stom]
- study-19: LAMP企业网站集群架构搭建(自己实战)
- shell脚本在容器云中搭建hadoop集群(七)
- Apache ActiveMQ实战(2)-集群
- 基于zookeeper+leveldb搭建activemq集群
- ActiveMQ简介与集群搭建--编辑中
- CentOS 6.5下搭建ActiveMq集群(静态网络连接)
- 在linux下使用shell脚本自动化完成hadoop集群搭建
- mongodb分片集群实战搭建
- MongoDB分片实战(一):集群搭建
- kubernetes可视化搭建集群,web界面一键操作
- Redis实战(五)CentOS 7上搭建Redis集群