一、环境准备
1、机器信息
1、192.168.87.130 nameServer1,brokerServer1 Master1
2、192.168.87.131 nameServer2,brokerServer2 Master2
2、Hosts信息 vi /etc/hosts
1、192.168.87.130 rocketmq-nameserver1 rocketmq-master1
2、192.168.87.131 rocketmq-nameserver2 rocketmq-master2
3、上传两台机器 /usr/local/rocketmq-all-4.3.2-bin-release下
4、建立软连接:ln -s rocketmq-all-4.3.2-bin-release rocketmq
5、创建存储路径:
[root@xdsu1 rocketmq]# mkdir /usr/local/rocketmq/store
[root@xdsu1 rocketmq]# mkdir /usr/local/rocketmq/store/commitlog
[root@xdsu1 rocketmq]# mkdir /usr/local/rocketmq/store/consumequeue
[root@xdsu1 rocketmq]# mkdir /usr/local/rocketmq/store/index
二、RocketMQ配置文件
vi /usr/local/rocketmq/conf/2m-noslave/broker-a.properties
vi /usr/local/rocketmq/conf/2m-noslave/broker-b.properties
#所属集群名字 brokerClusterName=rocketmq-cluster #broker名字,注意此处不同的配置文件填写的不一样 例如:在a.properties 文件中写 broker-a 在b.properties 文件中写 broker-b brokerName=broker-a|broker-b #borker-b.properties有所区别 #0 表示 Master,>0 表示 Slave brokerId=0 #nameServer地址,这里nameserver是单台,如果nameserver是多台集群的话,就用分号分割(即namesrvAddr=ip1:port1;ip2:port2;ip3:port3) namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876 #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数。由于是4个broker节点,所以设置为4 defaultTopicQueueNums=4 #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=true #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=true #Broker 对外服务的监听端口 listenPort=10911 #删除文件时间点,默认凌晨 4点 deleteWhen=04 #文件保留时间,默认 48 小时 fileReservedTime=120 #commitLog每个文件的大小默认1G mapedFileSizeCommitLog=1073741824 #ConsumeQueue每个文件默认存30W条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 #destroyMapedFileIntervalForcibly=120000 #redeleteHangedFileInterval=120000 #检测物理文件磁盘空间 diskMaxUsedSpaceRatio=88 #存储路径 storePathRootDir=/usr/local/rocketmq/store #commitLog 存储路径 storePathCommitLog=/usr/local/rocketmq/store/commitlog #消费队列存储路径存储路径 storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue #消息索引存储路径 storePathIndex=/usr/local/rocketmq/store/index #checkpoint 文件存储路径 storeCheckpoint=/usr/local/rocketmq/store/checkpoint #abort 文件存储路径 abortFile=/usr/local/rocketmq/store/abort #限制的消息大小 maxMessageSize=65536 #flushCommitLogLeastPages=4 #flushConsumeQueueLeastPages=2 #flushCommitLogThoroughInterval=10000 #flushConsumeQueueThoroughInterval=60000 #Broker 的角色 #- ASYNC_MASTER 异步复制Master #- SYNC_MASTER 同步双写Master #- SLAVE brokerRole=ASYNC_MASTER #要配置为MASTER或SLAVE的角色 #刷盘方式 #- ASYNC_FLUSH 异步刷盘 #- SYNC_FLUSH 同步刷盘 flushDiskType=ASYNC_FLUSH #checkTransactionMessageEnable=false #发消息线程池数量 #sendMessageThreadPoolNums=128 #拉消息线程池数量 #pullMessageThreadPoolNums=128
三、修改日志配置文件
mkdir /usr/local/rocketmq/logs cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml
四、修改启动脚本参数(测试环境虚拟机配置小点,线上可配置大些)
vi /usr/local/rocketmq/bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"
vi /usr/local/rocketmq/bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"
五、启动NameServer
启动顺序:先启动NameServer,再启动BrokerServer(启动BrokerServer之前先关闭防火墙)停止顺序:先停止BrokerServer,再停止NameServer[root@xdsu0 bin]# cd /usr/local/rocketmq/bin/ [root@xdsu0 bin]# nohup sh mqnamesrv &
# tail -f n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log ##查看日志文件
# jps
六、启动BrokerServer A/B
cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &
netstat -ntlp 查看端口占用
#jps 查看进程
# tail -f n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log ##查看日志文件
七、启动rocketmq console
nohup java -jar rocketmq-console-ng-1.0.0.jar --rocketmq.config.namesrvAddr='192.168.87.130:9876;192.168.87.131:9876' &
八、停止,先停broker,再停namesrv
sh mqshutdown broker
sh mqshutdown namesrv
九、清理mq消息文件
rm -rf /usr/local/rocketmq/store
mkdir /usr/local/rocketmq/store
mkdir /usr/local/rocketmq/store/commitlog
mkdir /usr/local/rocketmq/store/consumequeue
mkdir /usr/local/rocketmq/store/index