前置条件:两台虚拟机CentOS Linux release 7.5.1804(ps:当然也可以都部署在一台机器上)
RocketMq属于天生集群。需要同时启动nameServer和Broker进行部署,在通过Dashboard进行监控,所以要安装三个东西。
官网:下载 | RocketMQ
当前在这之前还需要安装JDK
1 2 3 4 5 6 7 8 9 |
yum -y install java-1.8.0-openjdk-devel.x86_64 sudo cat >> /etc/profile <<-'EOF' export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH EOF source /etc/profile echo $JAVA_HOME |
下载压缩包后通过
1 2 3 4 5 6 7 8 9 10 11 12 |
#进行解压 unzip rocketmq-all-5.3.0-bin-release.zip cd 到对应解压压缩包内 #修改runserver sed -i 's/-Xms4g -Xmx4g -XX:MetaspaceSize=128m/-Xms1g -Xmx1g -XX:MetaspaceSize=128m/g' ./bin/runserver.sh #nameServer默认使用9876端口,如果使用虚拟机启动可以忽略这行 firewall-cmd --zone=public --add-port=9876/tcp --permanent firewall-cmd --reload # 非后台启动 # sh ./bin/mqnamesrv #后台启动并查看日志 nohup sh ./bin/mqnamesrv > nqnamesrv.log & |
查看启动日志cat nqnamesrv.log 如果输出结果是seccess则表示启动成功
在另外一台的虚拟机上,也需要
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#进行解压 unzip rocketmq-all-5.3.0-bin-release.zip cd 到对应解压压缩包内 #修runbroker sed -i 's/-Xms8g -Xmx8g/-Xms1g -Xmx1g/g' ./bin/runbroker.sh #创建broker的的配置 cat > single-master.properties <<-'EOF' #集群名称,同一个集群下的broker要求统一 brokerClusterName=DefaultCluster #broker名称 brokerName=broker-a #brokerId=0代表主节点,大于零代表从节点 brokerId=0 #删除日志文件时间点,默认凌晨 4 点 deleteWhen=04 #日志文件保留时间,默认 48 小时 fileReservedTime=48 #Broker 的角色 #- ASYNC_MASTER 异步复制Master #- SYNC_MASTER 同步双写Master brokerRole=SYNC_MASTER #刷盘方式 #- ASYNC_FLUSH 异步刷盘,性能好宕机会丢数 #- SYNC_FLUSH 同步刷盘,性能较差不会丢数 flushDiskType=SYNC_FLUSH #末尾追加,NameServer节点列表,使用分号分割 namesrvAddr=192.168.10.100:9876 autoCreateTopicEnable=true EOF #防火墙设置 firewall-cmd --zone=public --add-port=10911/tcp --permanent firewall-cmd --reload #启动日志 #sh ./bin/mqbroker -c ./single-master.properties nohup sh ./bin/mqbroker -c ./single-master.properties > broker.log & |
查看cat broker.log ,如果为success则表示启动成功
在nameServer端
1 2 |
export NAMESRV_ADDR=192.168.10.100:9876 sh tools.sh org.apache.rocketmq.example.quickstart.Producer |
在broker端接收消息
1 2 |
export NAMESRV_ADDR=192.168.10.100:9876 sh tools.sh org.apache.rocketmq.example.quickstart.Consumer |
https://github.com/apache/rocketmq-dashboard
仓库服务 (aliyun.com) rocketmq-dashboard
默认启动是8080端口
1 |
nohup java -jar rocketmq-dashboard-1.0.0.jar > dashboard.log & |
启动访问地址http://192.168.10.100:8080/
1 2 3 4 5 6 7 |
# 停止NameServer sh bin/mqshutdown namesrv # 停止Broker sh bin/mqshutdown broker #查看关闭是否成功,如果没有返回结果则表示关闭成功 ss -anp | grep 9876 ss -anp | grep 10911 |
虚拟机安装完之后每次启动都很麻烦,所以补充一个一件启动脚本
1 2 3 4 5 6 7 8 |
vim start_mq.sh #!/bin/bash nohup sh /home/nameSrv/bin/mqnamesrv > /home/nameSrv/nqnamesrv.log 2>&1 & nohup sh /home/brokerSrv/bin/mqbroker -c /home/brokerSrv/single-master.properties > /home/brokerSrv/broker.log 2>&1 & nohup java -jar /home/mq-dash.jar > /home/dashboard.log 2>&1 & chmod 777 start_mq.sh #再次重启 sh ./路径/start_mq.sh |