linux环境准备
查询或修改每台节点服务器主机名称(若甲方要求不能修改,则记住主机名称)
vim /etc/hostname
rocket-broker1
rocket-broker2
...
rocket-brokerN
修改每台节点主机映射
vim /etc/hosts
ip1 主机名1<br>ip2 主机名2<br>...<br>ipN 主机名N
重启所有节点服务器
在任意一台服务器编写分发脚本
vim /bin/xsync<br>
#!/bin/bash<br><br>#1. 判断参数个数<br>if [ $# -lt 1 ]<br>then<br> echo Not Enough Arguement!<br> exit;<br>fi<br><br>#2. 遍历集群所有机器<br>for host in 主机名1 主机名2 主机名N<br>do<br> echo ======================== $host ========================<br> #3. 遍历所有目录,挨个发送<br> for file in $@<br> do<br> #4. 判断文件是否存在<br> if [ -e $file ]<br> then<br> #5. 获取父目录<br> pdir=$(cd -P $(dirname $file); pwd)<br> #6. 获取当前文件的名称<br> fname=$(basename $file)<br> ssh $host "mkdir -p $pdir"<br> rsync -av $pdir/$fname $host:$pdir<br> else<br> echo $file dose not exists!<br> fi<br> done<br>done<br>
每台服务器配置SSH无密登录,用于分发文件时,免去输入密码的步骤
生产rsa密钥
ssh-keygen -t rsa
三次回车
将公钥拷贝到目标机器
ssh-copy-id 主机名称1
yes,回车
输入密码,回车
jdk安装
在分发脚本的那台服务器,安装jdk
安装jdk8及以上,根据实际情况来确定
建议擦除linux默认的jdk
rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps
下载jdk,linux-x64_bin.tar.gz版本
上传到/opt/software
xshell支持直接拖进去,或者用xftp进行传输
mkdir /bin/software
解压
cd /opt/software
mkdir /opt/module
tar -zxvf jdk压缩包名称 -C /opt/module
配置环境变量
vim /etc/profile.d/my_env.sh
添加内容
#JAVA_HOME<br>export JAVA_HOME=/opt/module/解压后的JDK文件夹名称<br>export PATH=$PATH:$JAVA_HOME/bin
使配置生效
source /etc/profile.d/my_env.sh
分发环境变量和安装包
分发环境变量配置文件
xsync /etc/profile.d/my_env.sh
分发JDK安装包
xsync /opt/module/解压后的JDK文件夹名称
在每台节点服务器执行刷新环境变量配置文件
source /etc/profile.d/my_env.sh
安装RocketMQ
在分发脚本的服务器,安装MQ
将rocketmq-all-X.X.X-bin-release.zip上传到/opt/software
解压
cd /opt/software
unzip 压缩包文件名 -d /opt/module
调整JVM内存
cd /opt/module/安装包名
vim bin/runserver.sh
如图调整
vim bin/runbroker.sh
如图调整
安装可视化工具
官网下载rocketmq-dashboard-x.x.x-source-release
然后在自己电脑上解压
执行mvn clean package -Dmaven.test.skip=true
如果提示test.skip命令异常,可以改成mvn clean package "-Dmaven.test.skip=true"
如果提示yarn install失败,可以尝试将pom.xml中的frontend-maven-plugin和maven-antrun-plugin插件注释掉
mkdir /opt/module/rocketmq安装包名/dashboard<br>并将打包jar上传至此
mkdir config<br>并将dashboard程序的application.yml上传
vim config/application.yml<br>根据需要修改配置,例如端口号(默认8080)、集群配置(ip和端口)等
执行java -jar rocketmq-dashboard-2.0.0.jar 1>dashboard.log 2>&1 &
jps,查看是否已启动
开通端口(多节点直接需要开通端口)
firewall-cmd --zone=public --add-port=9876/tcp --add-port=10911/tcp --add-port=10909/tcp --add-port=11009/tcp --add-port=8080/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports<br>查看开通了哪些端口
systemctl stop firewalld<br>临时关闭防火墙
分发rocketmq
/bin/xsync /opt/module/rocketmq安装包名称
普通集群(一般使用这种):<br>根据事先指定的规范,N个namesvr,M个master-broker,P个slave-broker,来配置文件<br>配置文件在conf文件夹下(-s是从节点配置,没有-s的是主节点)<br>一台服务器,一个主节点,多个其他主节点的从节点<br>可用性较差,但是性能较高
brokerClusterName:集群名称必须全都一致
brokerName:主和对应的从,必须一致,不同的主之间必须不一致
brokerId:必须唯一,且等于0的是master节点,大于0是slave节点
namesrvAddr:hostname1:9876;hostname2:9876;hostname3:9876
storePathRootDir=/opt/module/rocketmq-all-5.3.1-bin-release/store<br>storePathCommitLog=/opt/module/rocketmq-all-5.3.1-bin-release/commitLog<br>storePathConsumeQueue=/opt/module/rocketmq-all-5.3.1-bin-release/consumequeue<br>storePathIndex=/opt/module/rocketmq-all-5.3.1-bin-release/index<br>storeCheckpoint=/opt/module/rocketmq-all-5.3.1-bin-release/checkpoint<br>abortFile=/opt/module/rocketmq-all-5.3.1-bin-release/abort<br>
listenPort:10911
DLedger高可用集群:<br>一台服务器,一个节点,要求至少半数以上存活才能用,主节点挂了会自动选举<br>性能相对较差,但是可用性较高
brokerClusterName=hxcRaftCluster<br>brokerName=raft-node-a<br>listenPort=30911<br>namesrvAddr=hxc-01:9876;hxc-02:9876;hxc-04:9876<br>storePathRootDir=/opt/module/rocketmq-all-5.3.1-bin-release/storeDledger<br>storePathCommitLog=/opt/module/rocketmq-all-5.3.1-bin-release/storeDledger/commitlog<br>storePathConsumeQueue=/opt/module/rocketmq-all-5.3.1-bin-release/storeDledger/consumequeue<br>storePathIndex=/opt/module/rocketmq-all-5.3.1-bin-release/storeDledger/index<br>storeCheckpoint=/opt/module/rocketmq-all-5.3.1-bin-release/storeDledger/checkpoint<br>abortFile=/opt/module/rocketmq-all-5.3.1-bin-release/storeDledger/abort<br>enableDLegerCommitLog=true<br>dLegerGroup=RaftNode00<br>dLegerPeers=n0-hxc-01:40911;n1-hxc-02:40911;n2-hxc-04:40911<br><font color="#e74f4c">#唯一键,其他不用改<br>dLegerSelfId=n0</font><br>sendMessageThreadPoolNums=16<br>
启动、关闭
启动
nohup bin/mqnamesrv &
nohup bin/mqbroker -c ./conf/2m-2s-async/broker-a.properties &<br>nohup bin/mqbroker -c ./conf/dledger/broker.conf &<br>这里需要指定broker节点的配置文件,最好这样启动,否则可能造成配置文件没读到的问题
cd /opt/module/rocketmq安装包名称
关闭
bin/mqshutdown broker
bin/mqshutdown namesrv