Centos7搭建RocketMq集群

Centos7搭建RocketMq集群

每天多学一点点~
话不多说,这就开始吧…

1.前言

年底了,虽然忙,但还是要抽时间学习点东西~
士不可以不弘毅,任重而道远,加油~
之前学习了rabbitmq,但是rabbit有性能瓶颈,为了去大厂,rocketmq走起~

2.环境要求

运行环境
JDK版本:1.8.0_221
rocketmq版本:rocketmq­all­4.3.2­incubating­bin­release.zip (下载最好用VPN,不
然很慢)
下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.3.2/rocketmq­all­
4.3.2­bin­release.zip
系统:centos 7

3.下载

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4. 安装Rocketmq

虚拟机 130

  1. 解压
unzip rocketmq-all-4.3.2-bin-release.zip 
  1. rocketmq加入环境变量
    执行vim /etc/profile ,插入jdk与rocketmq的环境变量:
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
export ROCKETMQ_HOME=/usr/local/rocketmqneed/rocketmq-all-4.3.2-bin-release
export PATH=$ROCKETMQ_HOME/bin:$PATH
刷新环境变量:source /etc/profile
  1. 修改/usr/local/rocketmqneed/rocketmq-all-4.3.2-bin-release
    /conf/broker.conf(启动时可选择该配置文件)
1#集群名称,可自定义
2 brokerClusterName=DefaultCluster
3 brokerName=broker‐a
4 brokerId=0
5 //定义服务地址,主存地址
6 namesrvAddr=192.168.241.198:9876
7 deleteWhen=04
8 fileReservedTime=48
9 brokerRole=ASYNC_MASTER
10 flushDiskType=ASYNC_FLUSH
11 autoCreateTopicEnable=true
12 #消息存储根路径
13 storePathRootDir=/data/rocketmq/store
14 #日志路径
15 storePathCommitLog=/data/rocketmq/store/commitlog
16 # 是否开启过滤 支持sql过滤
17 enablePropertyFilter=true
  1. 修改内存
    修改/usr/local/rocketmqneed/rocketmq-all-4.3.2-bin-release/bin/runserver.sh和/usr/local/rocketmqneed/rocketmq-all-4.3.2-bin-release/bin/runbroker.sh 中JAVA_OPT关于内存的设置
    vim runserver.sh
    在这里插入图片描述
    修改此处的内存大小,默认为4g,一般我们的虚拟机内存不会太大
    所以此处修改为256m,可以根据自己机器的配置合理设置
    JAVA_OPT="${JAVA_OPT} ‐server ‐Xms256m ‐Xmx256m ‐Xmn128m ‐XX:MetaspaceSize=64m ‐XX:MaxMetaspaceSize=128m"
    vim runbroker.sh
    在这里插入图片描述
    默认需要内存大小为8g
JAVA_OPT="${JAVA_OPT} ‐server ‐Xms256m ‐Xmx256m ‐Xmn128m"
  1. 修改ip
    假设我们的IP是:192.168.73.130,修改配置文件broker.conf,加上:
    brokerIP1=192.168.73.130

5. 启动Rocketmq

  1. 运行服务namesrv

执行命令:nohup sh mqnamesrv ‐n 192.168.73.130:9876 &
在这里插入图片描述
出现The Name Server boot success. serializeType=JSON 说明启动成功
在这里插入图片描述

  1. 启动broker
    指定启动配置文件
1 执行命令:
2 nohup sh mqbroker -n 192.168.73.130:9876 -c  ../conf/broker.conf autoCre ateTopicEnable=true &
3 查看broker启动配置:
4 sh bin/mqbroker ‐m
(127.0.0.1:9876为nameserver,链接进行注册,autoCreateTopicEnable=true(允许创建topic);)

在这里插入图片描述
在这里插入图片描述
配置文件
在这里插入图片描述
做集群的时候,brokerName=broker-a #主的名字必须要和slave是一样的

到这里,单机版已经搭建成功~

6. 搭建Rocketmq集群

  1. 准备工作
    备2个虚拟机分别是虚拟机centos-node-01(130)与centos-node-02(131),将131上的rocketmq复制到132 (因为130装了docker,网卡会有点影响)
    命令 :
    scp -r rocketmqneed -r root@192.168.73.132:/usr/local
    分别部署2个NameServer,,并在每台机器上分别启动一个Master和一个Slave,互为主备,在主目录下的conf文件夹下提供了多种broker配置模式,分别有:2m-2s-async,2m-2s-sync,
    2m-noslave,可以以此为模版做如下配置:
    cd conf目录
    cp broker.conf broker-m.conf
    cp broker.conf broker-s.conf

  2. 配置192.168.73.130 Master和Slave

Master broker-m.conf配置如下:

1 #rocketmq‐name服务地址,多个地址用;分开,不配置默认为localhost:9876
2 namesrvAddr = 192.168.73.131:9876;192.168.73.132:9876
3 #可以配置成自己需要的名称
4 brokerClusterName = qiuqiu-rocket-cluster
5 brokerName = broker‐a
6 # 0表示主节点
7 brokerId = 0
8 deleteWhen = 04
9 fileReservedTime = 48
10 #当前节点角色
11 brokerRole = SYNC_MASTER     # 同步模式
12 flushDiskType = ASYNC_FLUSH
13 autoCreateTopicEnable=true
14 #broker通信端口,默认端口
15 listenPort=10911
16 storePathRootDir=/root/rocketmqmaster/store	 # 队列的信息以及偏移量
17 storePathCommitLog=/root/rocketmqmaster/store/commitlog  # 存储消息内容的文件

Slave broker-s.conf配置

1 #rocketmq‐name 服务地址,多个地址用;分开,不配置默认为localhost:9876
2 namesrvAddr = 192.168.73.131:9876;192.168.73.132:9876
3 #可以配置成自己需要的名称
4 brokerClusterName = qiuqiu-rocket-cluster
5 brokerName = broker‐a        #要和主的一样
6 # 非0表示从节点
7 brokerId = 1
8 deleteWhen = 04
9 fileReservedTime = 48
10 #当前节点角色
11 brokerRole = SLAVE     	
12 flushDiskType = ASYNC_FLUSH
13 autoCreateTopicEnable=true
14 #broker通信端口
15 listenPort=10811
16 storePathRootDir=/root/rocketmqslave/store  # 队列的信息以及偏移量 
17 storePathCommitLog=/root/rocketmqslave/store/commitlog # 存储消息内容的文件
  1. 启动mqnamesrv
    nohup sh bin/mqnamesrv -n 192.168.73.131:9876 & #指定本机ip启动 因为编码原因 最好手输,复制可能会有问题
    在这里插入图片描述
    在这里插入图片描述
  2. 启动主 broker Master
    nohup sh mqbroker -c …/conf/broker-m.conf & # 因为编码原因 最好手输,复制 - 有问题,不会以配置文件方式启动 坑了好久
    在这里插入图片描述
  3. 启动从 broker Slave
    nohup sh mqbroker -c …/conf/broker-s.conf & # 因为编码原因 最好手输,复制 - 有问题,不会以配置文件方式启动 坑了好久

在这里插入图片描述
在这里插入图片描述

一个Namesrva,两个broker

注意:若报错,Lock failed,MQ already starte,若启动不了,首先看在 /root目录下,是否创建了store 和 logs目录,如果创建了,说明没有已配置文件启动,
删除 store 和 logs目录,然后
请手动输入 启动命令,不要复制!!!!!因为配置文件是 broker-m.conf 和 broker-s.conf ,其中 - 不对,坑了好久

  1. 配置192.168.73.131 Master和Slave
    配置文件和130的一样
    注意:brokerName = broker‐b 130和131的两个broker不能一样
    启动也一样
1. nohup sh bin/mqnamesrv -n 192.168.73.131:9876 &
2. nohup sh mqbroker -c ../conf/broker-m.conf & 
3. nohup sh mqbroker -c ../conf/broker-s.conf & 
  1. 是否搭建成功
1 # 查看集群监控状态
2 sh mqadmin clusterlist -n 192.168.73.131:9876;192.168.73.132:9876  # 最好手输

在这里插入图片描述

成功~

7.结语

世上无难事,只怕有心人,每天积累一点点,fighting!!!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值