cd /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/bin
nohup sh mqnamesrv
nohup sh mqbroker
注:若无法启动,改runbroker.sh和runserver.sh中的启动内存,要小于虚拟机内存,两者启动内存大小一致
jps
提示:3601 Jps
3494 NamesrvStartup
3530 BrokerStartup
sh mqshutdown broker
提示:The mqbroker(36695) is running…
Send shutdown request to mqbroker(36695) OK
sh mqshutdown namesrv
提示:The mqnamesrv(36664) is running…
Send shutdown request to mqnamesrv(36664) OK
vi /ect/hosts
192.168.9.157 rocketmq-nameserver1
192.168.9.157 rocketmq-master1
192.168.9.150 rocketmq-nameserver2
192.168.9.150 rocketmq-master2
注:修改前需先关闭两台机子防火墙
2. 重启网卡
service network restart
ping 192.168.9.150
ping rocketmq-nameserver2
ping rocketmq-master2
tar -zxvf rocketmq-all-4.3.2.tar.gz -C /usr/local
修改文件名为rocketmq: mv rocketmq-all-4.3.2 rocketmq
创建软连接(可有可无): ln -s rocketmq rocketmq
mkdir rocketmq/data //存储路径
mkdir rocketmq/data/commitlog //commitLog 存储路径
mkdir rocketmq/data/consumerqueue //消费队列存储路径存储路径
mkdir rocketmq/data/index //消息索引存储路径
主机1修改broker-a.properties文件:
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;
主机2修改broker-b.properties文件 :
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;
注:根据需要可加其他配置,如下
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a|broker-b
#0 表示 Master, >0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 0点
deleteWhen=00
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/opt/rocketmq/data
#commitLog 存储路径
storePathCommitLog=/opt/rocketmq/data/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/opt/rocketmq/data/consumequeue
#消息索引存储路径
storePathIndex=/opt/rocketmq/data/index
#checkpoint 文件存储路径
storeCheckpoint=/opt/rocketmq/data/checkpoint
#abort 文件存储路径
abortFile=/opt/rocketmq/data/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128
创建一个logs目录: mkdir /opt/rocketmq/logs
然后执行以下代码进行日志文件的替换,sed是linux的替换命令。
cd /opt/rocketmq/conf && sed -i 's#${user.home}#/opt/rocketmq#g' *.xml
根据需要,修改启动脚本参数,JVM调优(两台机器同样操作),可跳过
由于将nameServer和broker放在了同一台机器上,所以根据实际情况可分别对nameServer和broker进行jvm的性能调优,生产环境默认即可不需修改。
比如我的虚拟机内存只有1G,假设nameserver和broker默认启动内存为1G的话,那么我的虚拟机会因为内存不够而无法同时启动nameserver和broker,此时就需要把两个的启动内存改小一点。
a)broker的调优
vim /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/bin/runbroker.sh
修改 JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"中的启动内存
b)nameserver的调优
vim /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/bin/runserver.sh
修改 JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"中的启动内存
nohup sh mqnamesrv &
可用jps
命令查看是否有nameserver进程
主机1(master1):注意主要路径是 /conf/2m-noslave/broker-a.properties
nohup sh mqbroker -c /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
主机2(master2):注意主要路径是 /conf/2m-noslave/broker-b.properties
nohup sh mqbroker -c /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &
可用jps
命令查看是否有broker进程
注:先启动两台机器的NameServer,再启动两台机器的Borker,关机的时候顺序相反,先关闭两台机器的Broker,再关闭两台机器的Nameserver。
sh mqadmin clusterList -n "192.168.9.157:9876;192.168.9.150:9876"
注:也可在Windows端开启管控台,启动步骤在下文第4点
sh mqshutdown broker
sh mqshutdown namesrv
vi /ect/hosts
192.168.9.157 rocketmq-nameserver1
192.168.9.157 rocketmq-master1
192.168.9.150 rocketmq-nameserver2
192.168.9.150 rocketmq-master2
192.168.9.154 rocketmq-nameserver3
192.168.9.154 rocketmq-master1-slave
192.168.9.155 rocketmq-nameserver4
192.168.9.155 rocketmq-master2-slave
service network restart
ping 192.168.9.150
ping rocketmq-nameserver2
ping rocketmq-master2
主机1修改broker-a.properties文件
主机2修改broker-b.properties文件
从机1修改broker-a-s.properties文件
从机2修改broker-b-s.properties文件
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmq-nameserver3:9876;rocketmq-nameserver4:9876
nohup sh mqnamesrv &
主机1:
nohup sh mqbroker -c /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2m-2s-async/broker-a.properties >/dev/null 2>&1 &
主机2:
nohup sh mqbroker -c /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2m-2s-async/broker-b.properties >/dev/null 2>&1 &
从机1:
nohup sh mqbroker -c /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2m-2s-async/broker-a-s.properties >/dev/null 2>&1 &
从机2:
nohup sh mqbroker -c /usr/local/rocketmq-all-4.3.2/distribution/target/apache-rocketmq/conf/2m-2s-async/broker-b-s.properties >/dev/null 2>&1 &
sh mqadmin clusterList -n "192.168.9.157:9876;192.168.9.150:9876;192.168.9.154:9876;192.168.9.155:987"
注:可在Windows端开启管控台,步骤下文有,需改application.properties中的namesrvAddr
下载地址:https://github.com/apache/rocketmq-externals.git
打开下载好的文件,先进入 E:\rocketmq-externals-master\rocketmq-console\src\main\resources,修改application.properties中的namesrvAddr和server.port配置,例如:
server.port=8082 //此处配置管控台端口,浏览器访问就是用这个端口
rocketmq.config.namesrvAddr=192.168.0.158:9876;192.168.0.179:9876
mvn clean package -Dmaven.test.skip=true
java -jar rocketmq-console-ng-1.0.0.jar
localhost:8082