安装Rocketmq以及部署Rocketmq集群

一、环境
1、两台服务器10.213.120.80、10.213.120.81
2、rocketmq版本4.4.0
二、安装rocketmq
1、通过ftp把rocketmq-all-4.4.0-bin-release.zip上传81服务器的/opt/software目录下
2、拷贝rocketmq-all-4.4.0-bin-release.zip到/usr/local目录下
3、解压rocketmq-all-4.4.0-bin-release.zip

unzip rocketmq-all-4.4.0-bin-release.zip

4、修改目录名

mv rocketmq-all-4.4.0-bin-release rocketmq-4.4.0

5、进入rocketmq-4.4.0目录下

cd rocketmq-4.4.0

6、进入conf目录,并创建broker.properties文件

cd conf
touch broker.properties

7、修改broker.properties文件(也可在broker.conf中添加以下配置)

brokerIP1=10.213.120.81
namesrvAddr=10.213.120.81:9876;
messageIndexSafe=true
autoCreateTopicEnable=true
waitTimeMillsInSendQueue=5000
sendMessageThreadPoolNums=64
useReentrantLockWhenPutMessage=true
defaultReadQueueNums = 16
defaultWriteQueueNums = 16
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
storePathRootDir=/usr/local/rocketmq-4.4.0/store
storePathCommitLog=/usr/local/rocketmq-4.4.0/store/commitlog
storePathConsumeQueue=/usr/local/rocketmq-4.4.0/store/consumequeue
storePathIndex=/usr/local/rocketmq-4.4.0/store/index

8、修改/bin/runserver.sh

修改此处的内存大小,默认为4g,比较大
修改内存大小为512m,可以根据自己机器配置合理设置
#JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"

9、修改/bin/rrunbroker.sh

修改内存大小为512m
#JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"

10、启动namesrv

nohup sh bin/mqnamesrv > nameServer.log 2>&1 &

11、启动broker(指定启动配置文件)

nohup sh bin/mqbroker -n 10.213.120.81:9876 -c conf/broker.properties autoCreateTopicEnable=true > broker.log 2>&1 &

12、关闭命令
#方案一‐正常退出

sh mqshutdown broker ‐‐关闭broker
sh mqshutdown namesrv ‐‐关闭namesrv

#方案二‐杀掉进程

ps ‐ef|grep rocketmq 查看pid(进程号)
kill ‐9 pid(进程号)

三、部署rocketmq集群(双主双从同步写)
1、在rocketmq/conf/目录文件夹下提供了多种broker配置模式,分别有2m-2s-async,2m-2s-sync,2m-noslave,依次代表双主双从异步写模式、双主双从同步写模式、双主模式,本文用到2m-2s-sync双主双从同步写模式,其中81服务器配置broker-a.properties和broker-b-s.properties,80服务器配置broker-a-s.properties和broker-b.properties。
2、修改配置
(1)先在81服务器上的2m-2s-sync目录文件夹下,配置broker-a.properties文件

brokerClusterName=rocketmq-cluster
listenPort=10911
namesrvAddr=10.213.120.81:9876;10.213.120.80:9876
brokerName=broker-a
brokerId=0
defaultTopicQueueNums=4
autoCreateSubscriptionGroup=true
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
storePathRootDir=/usr/local/rocketmq-4.4.0/data/store
storePathCommitLog=/usr/local/rocketmq-4.4.0/data/store/commitlog
storePathConsumerQueue=/usr/local/rocketmq-4.4.0/data/store/consumequeue

(2)配置broker-b-s.properties文件

brokerClusterName=rocketmq-cluster
listenPort=10950
namesrvAddr=10.213.120.81:9876;10.213.120.80:9876
brokerName=broker-b
brokerId=1
defaultTopicQueueNums=4
autoCreateSubscriptionGroup=true
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
storePathRootDir=/usr/local/rocketmq-4.4.0/data/store/slave
storePathCommitLog=/usr/local/rocketmq-4.4.0/data/store/slave/commitlog
storePathConsumerQueue=/usr/local/rocketmq-4.4.0/data/store/slave/consumequeue

(3)然后在80服务器的2m-2s-sync目录下,配置broker-a-s.properties文件

brokerClusterName=rocketmq-cluster
listenPort=10950
namesrvAddr=10.213.120.81:9876;10.213.120.80:9876
brokerName=broker-a
brokerId=1
defaultTopicQueueNums=4
autoCreateSubscriptionGroup=true
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
storePathRootDir=/usr/local/rocketmq-4.4.0/data/store/slave
storePathCommitLog=/usr/local/rocketmq-4.4.0/data/store/slave/commitlog
storePathConsumerQueue=/usr/local/rocketmq-4.4.0/data/store/slave/consumequeue

(4)配置broker-b.properties文件

brokerClusterName=rocketmq-cluster
listenPort=10911
namesrvAddr=10.213.120.81:9876;10.213.120.80:9876
brokerName=broker-b
brokerId=0
defaultTopicQueueNums=4
autoCreateSubscriptionGroup=true
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
storePathRootDir=/usr/local/rocketmq-4.4.0/data/store
storePathCommitLog=/usr/local/rocketmq-4.4.0/data/store/commitlog
storePathConsumerQueue=/usr/local/rocketmq-4.4.0/data/store/consumequeue

3、启动namesrv和broker
(1)首先启动namesrv(81和80两台服务器都要启动)

nohup sh bin/mqnamesrv  > nameServer.log 2>&1 &

(2)启动81服务器上的broker-a Master(broker-a.properties)

nohup sh /usr/local/rocketmq-4.4.0/bin/mqbroker -c /usr/local/rocketmq-4.4.0/conf/2m-2s-sync/broker-a.properties > /usr/local/rocketmq-4.4.0/conf/2m-2s-sync/broker-a.log 2>&1 &

(3)启动81服务器上的broker-b-s SLAVE(broker-a.properties)

nohup sh /usr/local/rocketmq-4.4.0/bin/mqbroker -c /usr/local/rocketmq-4.4.0/conf/2m-2s-sync/broker-b-s.properties > /usr/local/rocketmq-4.4.0/conf/2m-2s-sync/broker-b-s.log 2>&1 &

(4)启动80服务器上的broker-a-s SLAVE(broker-a-s.properties)

nohup sh /usr/local/rocketmq-4.4.0/bin/mqbroker -c /usr/local/rocketmq-4.4.0/conf/2m-2s-sync/broker-a-s.properties > /usr/local/rocketmq-4.4.0/conf/2m-2s-sync/broker-a-s.log 2>&1 &

(5)启动80服务器上的broker-b Master(broker-b.properties)

nohup sh /usr/local/rocketmq-4.4.0/bin/mqbroker -c /usr/local/rocketmq-4.4.0/conf/2m-2s-sync/broker-b.properties > /usr/local/rocketmq-4.4.0/conf/2m-2s-sync/broker-b.log 2>&1 &

4、集群启动后,测试查看集群监控状态(任一服务器,输入以下命令即可)

sh bin/mqadmin clusterlist -n IP:端口
(base) [root@BR-DesEng-APP rocketmq-4.4.0]# sh bin/mqadmin clusterlist -n 10.213.120.81:9876
OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
#Cluster Name     #Broker Name            #BID  #Addr                  #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
rocketmq-cluster  broker-a                0     10.213.120.81:10911    V4_4_0                   0.00(0,0ms)         0.00(0,0ms)          0 443787.40 -1.0000
rocketmq-cluster  broker-a                1     10.213.120.80:10950    V4_4_0                   0.00(0,0ms)         0.00(0,0ms)          0 443787.40 0.2063
rocketmq-cluster  broker-b                0     10.213.120.80:10911    V4_4_0                   0.00(0,0ms)         0.00(0,0ms)          0 443787.40 -1.0000
rocketmq-cluster  broker-b                1     10.213.120.81:10950    V4_4_0                   0.00(0,0ms)         0.00(0,0ms)          0 443787.40 0.2382

四、部署rocketmq集群(双主双从异步写)
1、配置文件以及启动命令与双主双从同步写一样,与同步写最大的不同是,需要将master节点的brokerRole配置项需要改为ASYNC_MASTER,这里不再赘述。

brokerRole=ASYNC_MASTER

五、部署遇到的问题
1、使用命令sh mqadmin clusterlist -n 10.213.120.80:9876报错

报错信息:Caused by: org.apache.rocketmq.acl.common.AclException: [10015:signature-failed] unable to calculate a request signature. error=[10015:signature-failed] unable to calculate a request signature. error=Algorithm HmacSHA1 not available

问题原因:rocketmq的bin目录中tools.sh脚本中的jar引用路径不对
解决办法:在tools.sh中${JAVA_HOME}/jre/lib/ext后加上ext文件夹的绝对路径

vi tools.sh
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib:${JAVA_HOME}/jre/lib/ext:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre/lib/ext"

六、参考资料
1、https://cloud.tencent.com/developer/article/1412653
2、http://www.tianshouzhi.com/api/tutorials/rocketmq/411

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值