RocketMQ 3 Master-No Salve集群搭建

一、机器配置

ECS类型

机器配置

机器数量

费用预算

ecs.ic5.large2C-2G-40G-20G3台(后续可以横向扩容)5845元

节点列表

服务器名称IP角色Port
public-service-za-node-1NameServer-110.4.0.37注册服务中心9876
public-service-zb-node-1NameServer-210.4.0.43注册服务中心9876
public-service-zc-node-1NameServer-310.4.0.80注册服务中心9876
public-service-za-node-1Broker-Master-110.4.0.37Master9877
public-service-zb-node-1Broker-Master-210.4.0.43Master9877
public-service-zc-node-1Broker-Master-310.4.0.80Master9877

二、部署方案

#mkdir -p /opt/rocketmq && mkdir -p /data/rocketmq

#yum install -y unzip

#cd /opt/rocketmq && unzip rocketmq-all-4.6.0-bin-release.zip 

#mv rocketmq-all-4.6.0-bin-release rocketmq-all-4.6.0

#cd rocketmq-all-4.6.0

  • 配置RocketMQ

#cd /opt/rocketmq/rocketmq-all-4.6.0/bin

#vi runbroker.sh ,将JAVA_OPTS修改
-server -Xms1g -Xmx1g -Xmn512m

#vi runserver.sh ,将JAVA_OPTS修改
-server -Xms512m -Xmx512m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=320m

#vi tools.sh ,将JAVA_OPTS修改
-server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=128m

#cd /opt/rocketmq/rocketmq-all-4.6.0/conf/3m-noslave

#vi broker-master-a.properties ,其它两个节点的配置文件把brokerName和brokerIP1改一下就可以了

  • brokerClusterName=RocketMQCluster
    brokerName=broker-a
    brokerId=0
    brokerRole=SYNC_MASTER
    flushDiskType=ASYNC_FLUSH
    listenPort=9877
    namesrvAddr=10.4.0.37:9876;10.4.0.43:9876;10.4.0.80:9876
    defaultTopicQueueNums=4
    autoCreateTopicEnable=true
    autoCreateSubscriptionGroup=true
    brokerIP1=10.4.0.37
    storePathRootDir=/data/rocketmq/data-master-a/store
    storePathCommitLog=/data/rocketmq/data-master-a/store/commitlog
    storePathConsumerQueue=/data/rocketmq/data-master-a/store/consumequeue
    storePathIndex=/data/rocketmq/data-master-a/store/index
    storeCheckpoint=/data/rocketmq/data-master-a/store/checkpoint
    abortFile=/data/rocketmq/data-master-a/store/abort
    deleteWhen=04
    fileReservedTime=120
    mapedFileSizeCommitLog=1073741824
    mapedFileSizeConsumeQueue=300000
    diskMaxUsedSpaceRatio=80
    enablePropertyFilter=true
    autoCreateTopicEnable=true
    autoCreateSubscriptionGroup=true

     

    • #vi broker-master-b.properties
    • #vi broker-master-c.properties
  • 在zb-node-1,zc-node-1上创建目录/opt/rocketmq,并从za-node-1上将整个rocketmq-all-4.6.0目录拷贝到新建的目录下
  • 在za-node-1节点上创建数据存储目录

#mkdir -p /data/rocketmq/data-master-a/store/commitlog

#mkdir -p /data/rocketmq/data-master-a/store/consumequeue

#mkdir -p /data/rocketmq/data-master-a/store/runlog

#mkdir -p /data/rocketmq/nameserver-a/runlog

  • 在zb-node-1节点上创建数据存储目录

mkdir -p /data/rocketmq/data-master-b/store/commitlog
mkdir -p /data/rocketmq/data-master-b/store/consumequeue
mkdir -p /data/rocketmq/data-master-b/store/runlog
mkdir -p /data/rocketmq/nameserver-b/runlog

  • 在zc-node-1节点上创建数据存储目录

mkdir -p /data/rocketmq/data-master-c/store/commitlog
mkdir -p /data/rocketmq/data-master-c/store/consumequeue
mkdir -p /data/rocketmq/data-master-c/store/runlog
mkdir -p /data/rocketmq/nameserver-c/runlog

  • 启动nameServer

在za-node-1节点上运行
#nohup /opt/rocketmq/rocketmq-all-4.6.0/bin/mqnamesrv >   /data/rocketmq/nameserver-a/runlog/runlog.namesrvrun.log 2>&1 &

在zb-node-1节点上运行
#nohup /opt/rocketmq/rocketmq-all-4.6.0/bin/mqnamesrv >  /data/rocketmq/nameserver-b/runlog/runlog.namesrvrun.log 2>&1 &

在zc-node-1节点上运行
#nohup /opt/rocketmq/rocketmq-all-4.6.0/bin/mqnamesrv >  /data/rocketmq/nameserver-c/runlog/runlog.namesrvrun.log 2>&1 &

  • 启动broker-master

在za-node-1节点上运行
#nohup  /opt/rocketmq/rocketmq-all-4.6.0/bin/mqbroker -c /opt/rocketmq/rocketmq-all-4.6.0/conf/3m-noslave/broker-master-a.properties  > /data/rocketmq/data-master-a/store/runlog/brokersvrrun.log 2>&1 &

在zb-node-1节点上运行
#nohup  /opt/rocketmq/rocketmq-all-4.6.0/bin/mqbroker -c /opt/rocketmq/rocketmq-all-4.6.0/conf/3m-noslave/broker-master-b.properties  > /data/rocketmq/data-master-a/store/runlog/brokersvrrun.log 2>&1 &

在zc-node-1节点上运行
#nohup  /opt/rocketmq/rocketmq-all-4.6.0/bin/mqbroker -c /opt/rocketmq/rocketmq-all-4.6.0/conf/3m-noslave/broker-master-b.properties  > /data/rocketmq/data-master-b/store/runlog/brokersvrrun.log 2>&1 &

  • 部署rocketmq管理界面
  • docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=10.4.0.37:9876;10.4.0.43:9876;10.4.0.80:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng

下面brocker-c的消息数量为0,是因为我重启了broker-c

三、集群扩展

      集群的NameServer可以使用同样步骤启动任意数量的实例,

      集群的Broker-master也可以部署更多,配置文件把名字改一下就可以

四、验证集群

       登录其中一个节点

       # export NAMESRV_ADDR=10.4.0.37:9876

       # cd  /opt/rocketmq/rocketmq-all-4.6.0/bin

       # ./tools.sh org.apache.rocketmq.example.quickstart.Producer #产生消息

      #./tools.sh org.apache.rocketmq.example.quickstart.Consumer #消费消息

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值