本篇博文参考:http://www.cnblogs.com/quchunhui/p/7126868.html,然后按照自己的环境进行重新编写

准备工作:

下载rocketmq-all-4.0.0-incubating-bin-release.zip,下载地址:http://rocketmq.apache.org/dowloading/releases/

环境:hadoop11,hadoop12,hadoop13 (Centos6.7)
软件:rocketmq安装包(v4.0.0)  rocketmq-all-4.0.0-incubating-bin-release.zip
工具:XShell,XFTP
hadoop11:    192.168.106.101
hadoop12:    192.168.106.102
hadoop13:    192.168.106.103

3个虚拟节点的构成如下:

安装步骤

步骤 内容 备注
下载安装包 从Apache RocketMq官网上下载安装包 http://rocketmq.apache.org/dowloading/releases/
上传并解压 使用XFTP工具,将安装包上传至服务器
编写配置文件 完成各节点的配置文件修改 http://rocketmq.apache.org/docs/rmq-deployment/
集群配置 启动rocketmq集群
集群验证 验证rocketmq集群是否正常

操作过程

1、安装包已经上传至其中3个节点:

hadoop11,hadoop12,hadoop13都执行以下命令:

unzip rocketmq-all-4.0.0-incubating-bin-release.zip

[root@hadoop11 software]# pwd
/home/tuzq/software
修改文件夹名称:
[root@hadoop11 software]# mv apache-rocketmq-all/ rocketmq

查看最终的效果:

2、修改配置文件

我这里已经将配置文件提前准备好了,只呈现以下配置文件的结果。
节点1(192.168.106.101)配置文件:
配置文件放在:/home/tuzq/software/rocketmq/conf中
文件名称是:broker-a-m.properties

cd /home/tuzq/software/rocketmq/conf
vim broker-a-m.properties

文件中的内容如下:

brokerClusterName=post
brokerName=broker-a
namesrvAddr=192.168.106.101:9876;192.168.106.102:9876
brokerId=0
listenPort=10911
brokerIP1=192.168.106.101
deleteWhen=04
fileReservedTime=72
brokerRole=ASYNC_MASTER
storePathRootDir=/home/tuzq/software/rocketmq/rootdir
storePathCommitLog=/home/tuzq/software/rocketmq/commitlog
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
flushDiskType=ASYNC_FLUSH
vim broker-c-s.properties

文件的内容是:

brokerClusterName=post
brokerName=broker-c
namesrvAddr=192.168.106.101:9876;192.168.106.102:9876
brokerId=1
listenPort=10920
brokerIP1=192.168.106.101
deleteWhen=04
fileReservedTime=72
brokerRole=SLAVE
storePathRootDir=/home/tuzq/software/rocketmq/rootdir
storePathCommitLog=/home/tuzq/software/rocketmq/commitlog
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
flushDiskType=ASYNC_FLUSH

节点2(192.168.106.102)配置文件:

cd /home/tuzq/software/rocketmq/conf
vim broker-a-s.properties
brokerClusterName=post
brokerName=broker-a
namesrvAddr=192.168.106.101:9876;192.168.106.102:9876
brokerId=1
listenPort=10920
deleteWhen=04
brokerIP1=192.168.106.102
fileReservedTime=72
brokerRole=SLAVE
storePathRootDir=/home/tuzq/software/rocketmq/rootdir
storePathCommitLog=/home/tuzq/software/rocketmq/commitlog
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
flushDiskType=ASYNC_FLUSH
vim broker-b-m.properties

文件内容是:

brokerClusterName=post
brokerName=broker-b
namesrvAddr=192.168.106.101:9876;192.168.106.102:9876
brokerId=0
listenPort=10911
brokerIP1=192.168.106.102
deleteWhen=04
fileReservedTime=72
brokerRole=ASYNC_MASTER
storePathRootDir=/home/tuzq/software/rocketmq/rootdir
storePathCommitLog=/home/tuzq/software/rocketmq/commitlog
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
flushDiskType=ASYNC_FLUSH

节点3(192.168.106.103)配置文件:

cd /home/tuzq/software/rocketmq/conf
vim broker-b-s.properties

文件内容是:

brokerClusterName=post
brokerName=broker-b
namesrvAddr=192.168.106.101:9876;192.168.106.102:9876
brokerId=1
listenPort=10920
brokerIP1=192.168.106.103
deleteWhen=04
fileReservedTime=72
brokerRole=SLAVE
storePathRootDir=/home/tuzq/software/rocketmq/rootdir
storePathCommitLog=/home/tuzq/software/rocketmq/commitlog
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
flushDiskType=ASYNC_FLUSH
vim broker-c-m.properties

文件内容是:

brokerClusterName=post
brokerName=broker-c
namesrvAddr=192.168.106.101:9876;192.168.106.102:9876
brokerId=0
listenPort=10911
brokerIP1=192.168.106.103
deleteWhen=04
fileReservedTime=72
brokerRole=ASYNC_MASTER
storePathRootDir=/home/tuzq/software/rocketmq/rootdir
storePathCommitLog=/home/tuzq/software/rocketmq/commitlog
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
flushDiskType=ASYNC_FLUSH

3、启动nameserver

三台机器上都创建logs文件夹(rocketmq中没有这个logs文件夹):
创建文件夹命令:

mkdir -p /home/tuzq/software/rocketmq/logs

节点1和节点2的启动命令:

nohup sh /home/tuzq/software/rocketmq/bin/mqnamesrv >/home/tuzq/software/rocketmq/logs/mqnamesrv.log 2>&1 &

注意:我这里将启动日志重定义到了logs路径下,需要提前手动创建logs文件夹,以便于统一管理日志,方便查看。

下图中展示了启动命令,日志中可以看到NameServer成功启动的日志。
NameServer - 节点1
请注意hostname,下面是hadoop11

[root@hadoop11 conf]# nohup sh /home/tuzq/software/rocketmq/bin/mqnamesrv >/home/tuzq/software/rocketmq/logs/mqnamesrv.log 2>&1 &
[1] 9676
[root@hadoop11 conf]# cat /home/tuzq/software/rocketmq/logs/mqnamesrv.log
nohup: 忽略输入
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=320m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON
[root@hadoop11 conf]#

截图如下:

在下面的演示过程中将不再进行截图,所有的过程都把代码粘贴出来,在进行查看的时候注意机器的hostname

NameServer = 节点2

[root@hadoop12 rocketmq]# nohup sh /home/tuzq/software/rocketmq/bin/mqnamesrv >/home/tuzq/software/rocketmq/logs/mqnamesrv.log 2>&1 &
[1] 9558
[root@hadoop12 rocketmq]# cat /home/tuzq/software/rocketmq/logs/mqnamesrv.log
nohup: 忽略输入
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=320m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON
[root@hadoop12 rocketmq]#

在节点1和节点2上分别执行jps命令,可以看到类似如下的结果:

[root@hadoop11 conf]# jps
9682 NamesrvStartup
9774 Jps

4、启动Broker-a(Master位于节点1、Slave位于节点2)

broker-a分为Master和slave,分别位于节点1和节点2上,需要分别启动。
注意:需要根据启动角色,为broker指定一个配置文件

在执行下面的命令前,先修改文件路径:{ROCKET_HOME}/bin/runbroker.sh中的JVM参数配置,如若不改,将会因为内存不够启动不了broker.

修改前:JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
修改后:JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx512m -Xmn512m -XX:PermSize=256m -XX:MaxPermSize=640m"

如图所示:

broker-a的master - 节点1
命令:

[root@hadoop11 bin]# nohup sh /home/tuzq/software/rocketmq/bin/mqbroker -c /home/tuzq/software/rocketmq/conf/broker-a-m.properties >/home/tuzq/software/rocketmq/logs/broker-a-m.log 2>&1 &
[2] 10081
[root@hadoop11 bin]# jps
9682 NamesrvStartup
10088 BrokerStartup
10154 Jps
[root@hadoop11 bin]# cat /home/tuzq/software/rocketmq/logs/broker-a-m.log
nohup: 忽略输入
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=256m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=640m; support was removed in 8.0
[root@hadoop11 bin]#

broker-a的slave - 节点2:
命令如下:

[root@hadoop12 bin]# nohup sh /home/tuzq/software/rocketmq/bin/mqbroker -c /home/tuzq/software/rocketmq/conf/broker-a-s.properties >/home/tuzq/software/rocketmq/logs/broker-a-s.log 2>&1 &
[2] 9926
[root@hadoop12 bin]# jps
9989 Jps
9564 NamesrvStartup
9933 BrokerStartup
[root@hadoop12 bin]# cat /home/tuzq/software/rocketmq/logs/broker-a-s.log
nohup: 忽略输入
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=256m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=640m; support was removed in 8.0
[root@hadoop12 bin]#

验证broker-a:
broker-a启动结束,这时候可以使用命令查看一下rocketmq集群状态:
命令:

[root@hadoop12 bin]# sh /home/tuzq/software/rocketmq/bin/mqadmin clusterList -n 192.168.106.101:9876
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 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
post              broker-a                0     192.168.106.101:10911  V4_0_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 419078.85 -1.0000
post              broker-a                1     192.168.106.102:10920  V4_0_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 419078.85 0.1532
[root@hadoop12 bin]#

5、启动broker-b(Master位于节点2、slave位于节点3)

broker-b的Master - 节点2

[root@hadoop12 bin]# nohup sh /home/tuzq/software/rocketmq/bin/mqbroker -c /home/tuzq/software/rocketmq/conf/broker-b-m.properties >/home/tuzq/software/rocketmq/logs/broker-b-m.log 2>&1 &
[3] 10175
[root@hadoop12 bin]# jps
10182 BrokerStartup
9564 NamesrvStartup
9933 BrokerStartup
10238 Jps
[root@hadoop12 bin]# cat /home/tuzq/software/rocketmq/logs/broker-b-m.log
nohup: 忽略输入
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=256m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=640m; support was removed in 8.0
[root@hadoop12 bin]#

broker-b的slave - 节点3:

[root@hadoop13 bin]# nohup sh /home/tuzq/software/rocketmq/bin/mqbroker -c /home/tuzq/software/rocketmq/conf/broker-b-s.properties >/home/tuzq/software/rocketmq/logs/broker-b-s.log 2>&1 &
[1] 9953
[root@hadoop13 bin]# jps
9969 Jps
9960 BrokerStartup
[root@hadoop13 bin]# cat /home/tuzq/software/rocketmq/logs/broker-b-s.log
nohup: 忽略输入
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=256m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=640m; support was removed in 8.0
[root@hadoop13 bin]#

验证broker-b

[root@hadoop13 bin]# sh /home/tuzq/software/rocketmq/bin/mqadmin clusterList -n 192.168.106.101:9876
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 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
post              broker-a                0     192.168.106.101:10911  V4_0_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 419078.98 -1.0000
post              broker-a                1     192.168.106.102:10920  V4_0_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 419078.98 0.1532
post              broker-b                0     192.168.106.102:10911  V4_0_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 419078.98 0.1532
post              broker-b                1     192.168.106.103:10920  V4_0_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 419078.98 0.0190
[root@hadoop13 bin]# 

6、启动broker-b(Master位于节点3,Slave位于节点1)

broker-c的Master - 节点3

[root@hadoop13 bin]# nohup sh /home/tuzq/software/rocketmq/bin/mqbroker -c /home/tuzq/software/rocketmq/conf/broker-c-m.properties >/home/tuzq/software/rocketmq/logs/broker-b-s.log 2>&1 &
[2] 10201
[root@hadoop13 bin]# cat /home/tuzq/software/rocketmq/logs/broker-b-s.log
nohup: 忽略输入
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=256m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=640m; support was removed in 8.0
[root@hadoop13 bin]# 

broker-c的Slave - 节点1

[root@hadoop11 bin]# nohup sh /home/tuzq/software/rocketmq/bin/mqbroker -c /home/tuzq/software/rocketmq/conf/broker-c-s.properties >/home/tuzq/software/rocketmq/logs/broker-a-m.log 2>&1 &
[3] 10458
[root@hadoop11 bin]# jps
10465 BrokerStartup
9682 NamesrvStartup
10519 Jps
10088 BrokerStartup
[root@hadoop11 bin]# cat /home/tuzq/software/rocketmq/logs/broker-a-m.log
nohup: 忽略输入
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=256m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=640m; support was removed in 8.0
[root@hadoop11 bin]#

验证broker-c

[root@hadoop11 bin]# sh /home/tuzq/software/rocketmq/bin/mqadmin clusterList -n 192.168.106.101:9876
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 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
post              broker-a                0     192.168.106.101:10911  V4_0_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 419079.12 0.0203
post              broker-a                1     192.168.106.102:10920  V4_0_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 419079.12 0.1532
post              broker-b                0     192.168.106.102:10911  V4_0_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 419079.12 0.1532
post              broker-b                1     192.168.106.103:10920  V4_0_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 419079.12 0.0190
post              broker-c                0     192.168.106.103:10911  V4_0_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 419079.12 0.0190
post              broker-c                1     192.168.106.101:10920  V4_0_0_SNAPSHOT          0.00(0,0ms)         0.00(0,0ms)          0 419079.12 0.0203
[root@hadoop11 bin]#

7、常见问题

问题1
启动broker的时候提示内存不够的错误

解决方法:由于个人电脑配置不够,无法为虚拟机申请更大的内存。所以,采用修改broker启动内存的方式解决了。
修改文件路径:{ROCKET_HOME}/bin/runbroker.sh
修改前:JAVA_OPT=”JAVAOPT−server−Xms8g−Xmx8g−Xmn4g”修改后:JAVAOPT=”{JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g” 修改后:JAVA_OPT=”{JAVA_OPT} -server -Xms256m -Xmx512m -Xmn512m -XX:PermSize=256m -XX:MaxPermSize=640m”
如图所示:

重新启动broker,日志中没有错误,jps进程中也可以看到broker正常启动。

问题2
在同一台机器上启动多个broker的时候提示如下错误:

问题原因:
按照本文最开始的图所示,同一台机器上会存在两个Broker,如果不进行特殊指定,broker的默认端口是10911
所以一台机器上启动两个broker时,第二个broker就会出现端口被占用的错误。
解决办法:
修改rocketmq的配置文件,增加listenPort配置。配置之后如下所示:
同一台机器的配置文件:

–>broker-a-m.properties

–>broker-c-s.properties

使用JPS查看一下进程是否有问题

在查看一下启动日志是否有问题

最后使用clusterList命令来验证一下集群健康状态
命令:sh bin/mqadmin clusterList -n 192.168.106.101:9876

成功实现了,如本文最开始图片所示的安装部署

rocketmq集群安装部署过程(4.0.0版本)、安装中的常见问题举例相关推荐

  1. rocketmq安装部署过程(4.0.0版本)

    准备工作 3个虚拟机节点的构成如下 : 安装步骤 操作过程 1.安装包已经上传至其中1个节点. 2.解压缩安装包 命令:unzip rocketmq-all-4.0.0-incubating-bin- ...

  2. Mongo集群分片部署实践(4.2版本)

    >使用一台Windows机器模拟集群分片部署,配置方案如下: 3个分片sharding 每一个分片由三个节点构成1主2备的 Replica Sets 3个配置节点Configserver 一个路 ...

  3. Kubernetes1.91(K8s)安装部署过程(一)--证书安装

    安装前忠告:如果你用的是虚拟机,强烈不建议你使用克隆(链接克隆)的方式,至于完整克隆不知道有没有问题,每一台全新安装centos7系统最好. 一.安装前主题环境准备 1.docker安装 建议使用官网 ...

  4. Centos6下RocketMQ集群部署记录

    一.RocketMQ基础知识介绍 Apache RocketMQ是阿里开源的一款高性能.高吞吐量.队列模型的消息中间件的分布式消息中间件. 上图是一个典型的消息中间件收发消息的模型,RocketMQ也 ...

  5. 【RocketMQ】ubuntu18下部署RocketMQ集群

    技术架构 - Producer:消息发布的角色,支持分布式集群方式部署.Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟. - Con ...

  6. Spark2.1.0 + CarbonData1.0.0集群模式部署及使用入门

    1 引言 Apache CarbonData是一个面向大数据平台的基于索引的列式数据格式,由华为大数据团队贡献给Apache社区,目前最新版本是1.0.0版.介于目前主流大数据组件应用场景的局限性,C ...

  7. rocketmq 集群部署

    架构图 部署环境 hostname ip 备注 mqnamesrv1 10.0.0.1 namesrv mqnamesrv2 10.0.0.2 namesrv mqbroker3 10.0.0.3 b ...

  8. RocketMQ集群部署记录

    RocketMQ集群部署记录 #引用    https://cloud.tencent.com/developer/article/1147765 一.RocketMQ基础知识介绍 Apache Ro ...

  9. RocketMQ集群搭建-4.2.0版本

    首发于我的博客: www.liutf.com/ 首发链接:www.liutf.com/posts/14196- 背景 由于公司内部用的RocketMQ消息中间件是个单点实例,随着业务发展,越来越多的应 ...

最新文章

  1. 实现800*600,1024*768两套分辨率方案
  2. oracle 查二进制字符串,检测二进制文件 - Oracle® Developer Studio 12.5:Discover 和 Uncover 用户指南...
  3. 光流 | MATLAB实现 Brox Optical Flow(代码类)
  4. 计算机技术会议排名,计算机学科会议排名
  5. DBCP针对不同数据库的validationQuery
  6. 【树链剖分】旅游(luogu 3976)
  7. 【Java数据结构与算法】第七章 冒泡排序、选择排序、插入排序和希尔排序
  8. 使用Sakura查看字符十六进制编码(附带ASCII编码表)
  9. c语言邮递员问题算法,中国邮递员问题的求解实例
  10. 基于四叉树分割和多分辨率相关的快速小波分形编码
  11. 爬虫之-bilibili视频下载-接口分析
  12. 【STM32】标准库 USART通信
  13. java二面_快手Java面试题分享,一二面(面经面试题附部分答案)
  14. VMWare中ubuntu打开终端方法
  15. 指南针 android gps,北斗GPS指南针
  16. ....他乡遇故知....
  17. simon手册翻译_part2
  18. 深度估计 DenseDepth 笔记
  19. 技术干货 | AlphaFold/ RoseTTAFold开源复现(1)—推理复现
  20. total command关闭按钮如何修改为最小化

热门文章

  1. 最大排列问题的算法实现(Python)究竟最后调换位置的有哪几个?
  2. python学习教程,猜数字游戏开发
  3. wxWidgets:wxFileSystem概述
  4. boost::test模块测试参数化测试
  5. boost::copy相关的测试程序
  6. boost::random模块实现如何使用随机数库的简短演示程序
  7. GDCM:gdcm::SOPClassUIDToIOD的测试程序
  8. boost::detail::sp_typeinfo用法实例
  9. Boost:等待和通知操作的模糊测试
  10. ITK:将蒙版的反面应用于图像