rockmq 2m-noslave模式环境搭建

服务器环境(centos7.6)

  • 192.168.191.111 rocketmq-nameserver1 rocketmq-master1
  • 192.168.192.112 rocketmq-nameserver2 rocketmq-master2
  • vim /etc/hosts追加如下内容:
    192.168.191.111 rocketmq-nameserver1
    192.168.191.111 rocketmq-master1
    192.168.191.112 rocketmq-nameserver2
    192.168.191.112 rocketmq-master2

关闭防火墙

  • 输入 systemctl status firewalld.service ,若,防火墙处于running状态,则执行一下操作
  • 输入 systemctl stop firewalld.service ,关闭防火墙
  • 输入 systemctl disable firewalld.service ,禁用防火墙

下载rocketmq源码(现在官方不提供编译好得文件下载)

jdk安装及环境变量配置

  • cd /usr/local
  • mkdir soft
  • cd soft
  • 把下载好的jdk通过xftp放入到/usr/local/soft下,通过解压"tar zxvf jdk-8u192-linux-x64.tar.gz"
  • vim /etc/profile文件,追加如下内容
        JAVA_HOME=/usr/local/soft/jdk1.8.0_192
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export JAVA_HOME
    export PATH
    export CLASSPATH
  • 执行source /etc/profile,使环境变量生效,运行java命令,看jdk安装是否成功

maven安装及环境变量配置

  • cd /usr/local/soft
  • 把下载好的maven通过xftp放入到/usr/local/soft下,通过解压"tar zxvf apache-maven-3.6.0-bin.tar.gz"
  • vim /etc/profile文件,追加如下内容
        #maven环境变量配置
        MAVEN_HOME=/usr/local/soft/apache-maven-3.6.0
        PATH=$MAVEN_HOME/bin:$PATH
        export MAVEN_HOME
        export PATH
  • 执行source /etc/profile,使环境变量生效,执行"mvn -v",看maven安装是否成功

编译rocketmq源码

  • cd /usr/local/soft
  • mkdir rocketmq
  • 把下载好的源码包通过xftp放入到/usr/local/soft下,通过解压"unzip rocketmq-all-4.4.0.zip -d rocketmq"
  • cd rocketmq/rocketmq-rocketmq-all-4.4.0
  • mvn -Prelease-all -DskipTests clean install -U,编译成功会有“building success”
  • 编译好的文件在“/usr/local/soft/rocketmq/rocketmq-rocketmq-all-4.4.0/distribution/target”目录下,有apache-rocketmq,有tar.gz,zip的编译好文件

2m-noslave模式配置

  • mkdir /usr/local/rocketmq/store
  • mkdir /usr/local/rocketmq/store/commitlog
  • mkdir /usr/local/rocketmq/store/consumequeue
  • mkdir /usr/local/rocketmq/store/index
  • cd /usr/local/rocketmq/conf/2m-noslave/
  • vim /usr/local/rocketmq/conf/2m-noslave/broker-a.properties
  • cd /usr/local/rocketmq/conf/2m-noslave
  • vim broker-a.properties
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
#0 表示 Master,>0 表示 Slave 
brokerName=broker-a  
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
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
#刷盘方式
#- ASYNC_FLUSH  异步刷盘 #- SYNC_FLUSH  同步刷盘 flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
  • vim broker-b.properties
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
#0 表示 Master,>0 表示 Slave 
brokerName=broker-b  
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
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
#刷盘方式
#- ASYNC_FLUSH  异步刷盘 #- SYNC_FLUSH  同步刷盘 flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
  • vim /usr/local/rocketmq/bin/runserver.sh


    image.png
  • vim /usr/local/rocketmq/bin/runbr
    image.png

    oker.sh

启动(两台机器执行)

  • cd /usr/local/rocketmq/bin
  • nohup sh mqnamesrv &
  • jps查看nameserver是否启动成功
  • 也可以查看日志 tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
  • 在第一台服务器上执行: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 &
  • 在两台机器上执行:tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log

rocketmq-console安装

  • 下载地址:https://github.com/apache/rocketmq-externals

    image.png

  • 解压以后,


    image.png
  • 修改项目下的pom.xml文件,以及src/java/resources下的application.properites下的nameserver配置


    image.png
  • 运行mvn clean package -Dmaven.test.skip=true,如果编译错误,请修改rocketmq-console项目下的pom.xml文件,一般需要修改rocket-tool的版本。

  • java -jar target/rocketmq-console-ng-1.0.0.jar

  • 成功运行rockemq-console

image.png

启动脚本(一键启动)

大家是否觉得启动比较复杂,需要启动nameserver,broker,console,大家可以写启动脚本一键启动,

  • 免密码登陆
    192.168.191.111执行:ssh-keygen -t rsa,一路回车执行
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.191.111
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.191.112
    ssh 192.168.191.112验证免密码登陆是否成功,同理,192.168.191.112同样操作。
  • 在两台服务器上分别,vim ~/.bashrc追加
JAVA_HOME=/usr/local/soft/jdk1.8.0_192
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

解决环境变量引发的问题

  • 创建启动脚本
    cd /usr/local/rocketmq/script
    vim rocketmq-manager.sh,内容如下
#!/bin/bash
if [[ $1 = 'start' ]];
then
    #rocketmq的启动
    #启动namesrv服务:
    ssh 192.168.191.111 "nohup sh /usr/local/rocketmq/bin/mqnamesrv >/dev/null 2>&1 &"
    ssh 192.168.191.112 "nohup sh /usr/local/rocketmq/bin/mqnamesrv >/dev/null 2>&1 &"
    echo "============================启动nameserver===================================="
    sleep 3s
    #启动broker服务
    ssh 192.168.191.111 "nohup sh /usr/local/rocketmq/bin/mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &"
    ssh 192.168.191.112 "nohup sh /usr/local/rocketmq/bin/mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &"
    echo "============================启动broker========================================"
    sleep 3s
    #启动rocketmq-console
    ssh 192.168.191.111 "nohup java -jar /usr/local/soft/rocketmq-console-ng-1.0.0.jar >/dev/null 2>&1 &"
    echo "========================启动rocketmq-console=================================="
elif [[ $1 = 'stop' ]];
then
    #关闭rocketmq-console
    ssh 192.168.191.111 "sudo kill -9 $(ps -ef|grep rocketmq-console-ng-1.0.0.jar | grep java|awk '{print $2}' )"
    echo "=======================关闭rocketmq-console==================================="
    sleep 3s

    #关闭broker服务
    ssh 192.168.191.111 "nohup sh /usr/local/rocketmq/bin/mqshutdown broker"
    ssh 192.168.191.112 "nohup sh /usr/local/rocketmq/bin/mqshutdown broker"
    echo "==========================关闭broker=========================================="
    sleep 3s
    #关闭namesrv服务:
    ssh root@192.168.191.111 "nohup sh /usr/local/rocketmq/bin/mqshutdown namesrv"
    ssh root@192.168.191.112 "nohup sh /usr/local/rocketmq/bin/mqshutdown namesrv"
    echo "=========================关闭nameserver========================================"
else
  echo "参数只能输入start|stop"
fi
  • chmod +x rocketmq-manager.sh
    启动脚本命令就可以/usr/local/rocketmq/script/rocketmq-manager.sh start
    关闭脚本就可以/usr/local/rocketmq/script/rocketmq-manager.sh stop

总结

终于达到我想要的效果,查看了官方文档,官方对于环境搭建的文档少之又少,对于搭建还是花了不少的时间,后续会出很多关于rocketmq的文章,请各位大佬多多关照。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343