上一集咱们已经学会了SpringBoot整合RocketMQ点我直达,今天咱们来搭建双主双从高性能MQ服务集群。html
Broker角色,Master提供读写,Slave只支持读,Consumer不用配置,当Master不可用或者繁忙的时候,Consumer会自动切换到Slave节点进行读取。双主双从,同步复制,异步刷盘。java
cd /opt/soft/rocketmq-all-4.7.1-source-release
mvn -Prelease-all -DskipTests clean install -U
由于是本地搭建的4台虚拟机,只分配的1G,不把启动内存设置小点,服务跑不起来~git
修改,1十、130spring
切换
cd /opt/soft/rocketmq-all-4.7.1-source-release/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1/bin
编辑
vim runserver.sh
修改参数
原始:
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
修改成:
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
修改,1十、120、130、140vim
切换
cd /opt/soft/rocketmq-all-4.7.1-source-release/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1/bin
编辑
vim runbroker.sh
修改
原始值:
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
修改成:
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"
启动,110,130架构
切换
cd /opt/soft/rocketmq-all-4.7.1-source-release/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1
守护进程启动
nohup sh bin/mqnamesrv &
使用:jps,查看是否启动成功
切换
cd /opt/soft/rocketmq-all-4.7.1-source-release/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1/conf/2m-2s-sync
编辑
vim broker-a.properties
修改成以下配置
namesrvAddr=192.168.199.110:9876;192.168.199.130:9876
brokerClusterName=ybchenCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
切换
cd /opt/soft/rocketmq-all-4.7.1-source-release/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1
守护进程启动
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a.properties &
切换
cd /opt/soft/rocketmq-all-4.7.1-source-release/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1/conf/2m-2s-sync
编辑
vim broker-b.properties
修改成以下配置
namesrvAddr=192.168.199.110:9876;192.168.199.130:9876
brokerClusterName=ybchenCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
切换
cd /opt/soft/rocketmq-all-4.7.1-source-release/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1
守护进程启动
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b.properties &
切换
cd /opt/soft/rocketmq-all-4.7.1-source-release/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1/conf/2m-2s-sync
编辑
vim broker-a-s.properties
修改成以下配置
namesrvAddr=192.168.199.110:9876;192.168.199.130:9876
brokerClusterName=ybchenCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
切换
cd /opt/soft/rocketmq-all-4.7.1-source-release/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1
守护进程启动
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-a-s.properties &
切换
cd /opt/soft/rocketmq-all-4.7.1-source-release/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1/conf/2m-2s-sync
编辑
vim broker-b-s.properties
修改成以下配置namesrvAddr=192.168.199.110:9876;192.168.199.130:9876
brokerClusterName=ybchenCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
切换
cd /opt/soft/rocketmq-all-4.7.1-source-release/distribution/target/rocketmq-4.7.1/rocketmq-4.7.1
守护进程启动
nohup sh bin/mqbroker -c conf/2m-2s-sync/broker-b-s.properties &
作这几张图太难了,制做成gif,花了半小时~~如下内容都是连续滴app
在这台机器上操做,修改配置文件,并启动异步
切换 cd /opt/soft/rocketmq-externals-master/rocketmq-console/src/main/resources 编辑 vim application.properties 修改成以下配置,指定:rocketmq.config.namesrvAddr ------------------分隔符开始---------------------------------- server.address=0.0.0.0 server.port=8080 ### SSL setting #server.ssl.key-store=classpath:rmqcngkeystore.jks #server.ssl.key-store-password=rocketmq #server.ssl.keyStoreType=PKCS12 #server.ssl.keyAlias=rmqcngkey #spring.application.index=true spring.application.name=rocketmq-console spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true spring.http.encoding.force=true logging.level.root=INFO logging.config=classpath:logback.xml #if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876 rocketmq.config.namesrvAddr=192.168.199.110:9876;192.168.199.130:9876 #if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true rocketmq.config.isVIPChannel= #rocketmq-console's data path:dashboard/monitor rocketmq.config.dataPath=/tmp/rocketmq-console/data #set it false if you don't want use dashboard.default true rocketmq.config.enableDashBoardCollect=true #set the message track trace topic if you don't want use the default one rocketmq.config.msgTrackTopicName= rocketmq.config.ticketKey=ticket #Must create userInfo file: ${rocketmq.config.dataPath}/users.properties if the login is required rocketmq.config.loginRequired=false -----------------分隔符结束----------------------------------- 切换 cd /opt/soft/rocketmq-externals-master/rocketmq-console maven构建项目 mvn install -Dmaven.test.skip=true 切换 cd /opt/soft/rocketmq-externals-master/rocketmq-console/target 守护进程启动 nohup java -jar rocketmq-console-ng-2.0.0.jar &
连接: https://pan.baidu.com/s/1s--VdU-jZvCbS9jHvpHoIA 密码: eq11