centos用 2 台虚拟机搭建 2 namesrv,2 broker 组 2 master no slave rocketmq集群

RocketMQ分布式消息平台搭建
本文详细介绍如何在CentOS 7环境下,从零开始搭建RocketMQ分布式消息传递和流数据平台,包括环境准备、JDK及RocketMQ的安装配置、Broker启动及测试等关键步骤。

rocketmq:是一个开源的分布式消息传递和流数据平台。

 废话我就不多说了,相信很多人也不喜欢废话。我就一边搭建一边讲解。

 

一、环境准备

1. linux操作系统64位。(推荐使用centos7)

2. 64位JDK,版本1.8+。

3. 重要环境:内存:4G+ 磁盘,最好是可以扩展的逻辑卷。

4. 源码安装需要的环境:Maven 3.2.x; (此处不适合刚学习的朋友,建议更我一样用二进制安装。)

二进制安装解决前三个依赖。

 

1.1 操作系统

$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

1.2 JDK

两台都要操作

$ wget https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz?AuthParam=1555164688_18e12e54589c1045f5c28878ed6ae9a4
$ mv jdk-8u201-linux-x64.tar.gz\?AuthParam\=1555164688_18e12e54589c1045f5c28878ed6ae9a4 jdk-8u201-linux-x64.tar.gz
$ tar -xvf jdk-8u201-linux-x64.tar.gz ~/bin/
$ ln -s ~/bin/jdk1.8.0_201 ~/bin/jdk
$ echo 'export $JAVA_HOME=$HOME/bin/jdk' >> ~/.bashrc
$ echo 'export $JRE_HOME=$JAVA_HOME/jre' >> ~/.bashrc
$ echo 'export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin' >> ~/.bashrc
$ source ~/.bashrc
$ java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

1.3 其他,如果是自己搭建测试的话可以根据自己的电脑配置给出对应的配置。

$ ifconfig | head -2 | grep inet | awk '{print $2}'
192.168.92.72

# 另外一台
$ ifconfig | head -2 | grep inet | awk '{print $2}'
192.168.92.73

 

二、安装rocketmq

2.1 安装rocketmq

$ mkdir ~/package
$ cd ~/package/
$ wget http://mirror.rise.ph/apache/rocketmq/4.5.0/rocketmq-all-4.5.0-bin-release.zip
$ mkdir ~/soft
$ unzip rocketmq-all-4.5.0-bin-release.zip -d ~/soft/
$ cd ~/soft/
$ mv rocketmq-all-4.5.0-bin-release rocketmq

 

2.2 启动namerc

$ ./bin/mqnamesrv # 前台测试
$ nohup ./bin/mqnamesrv & # 后台运行
$ sudo netstat -nutpl|grep 9876 # 检查进程
tcp6       0      0 :::9876                 :::*                    LISTEN      12358/java

!!!如果你测试搭建的时候内存不够,请修改下面的文件。

$ sed -i 's/-Xms4g -Xmx4g -Xmn2g/-Xms1g -Xmx1g -Xmn512M/' ./bin/runserver.sh

!!!两台都要做。

 

2.3 配置broker,启动broker。

$ sudo vim /etc/hosts   # 两台服务器修改hosts文件
192.168.92.72 rocketmq.master
192.168.92.73 rocketmq.slave

$ ifconfig | head -2 | grep inet | awk '{print $2}'
192.168.92.72
$ cd /data/soft/rocketmq/
$ vim conf/2m-noslave/broker-a.properties
namesrvAddr=rocketmq.master:9876;rocketmq.slave:9876      # 名称服务器地址
brokerClusterName=DefaultCluster                          # 集群名称
brokerName=broker-a        # 经纪人姓名
brokerId=0                # 经纪人ID 0表示主人,正整数表示奴隶
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
sstorePathRootDir=/logs/rocketmqlogs/store
storePathCommitLog=/logs/rocketmqlogs/store/commitlog
$ mkdir -p /logs/rocketmqlogs/store/commitlog
$ sed -i 's#${user.home}/logs#/logs#g'  conf/*.xml

$ ifconfig | head -2 | grep inet | awk '{print $2}'
192.168.92.73
$ cd /data/soft/rocketmq/
$ vim conf/2m-noslave/broker-a.properties
namesrvAddr=rocketmq.master:9876;rocketmq.slave:9876
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
sstorePathRootDir=/logs/rocketmqlogs/store
storePathCommitLog=/logs/rocketmqlogs/store/commitlog
$ mkdir -p /logs/rocketmqlogs/store/commitlog
$ sed -i 's#${user.home}/logs#/logs#g'  conf/*.xml

经纪人其他配置(提供参考):

配置名称默认值说明
listenPort10911客户端监听端口号
namesrvAddrnull    (可手动指定)名称服务器地址
brokerIP1InetAddress for network interface如果有多个地址,应该配置
brokerNamenull经纪人姓名
brokerClusterNameDefaultCluster这个经济人属于哪个集群
brokerId0经纪人ID,0表示主人,正整数表示奴隶
storePathCommitLog$HOME/store/commitlog/提交日志的文件路径
storePathConsumerQueue$HOME/store/consumequeue/消耗队列的文件路径
mapedFileSizeCommitLog1024 * 1024 * 1024(1G)提交日志的映射文件大小
deleteWhen04何时删除超出保留时间的提交日志
fileReserverdTime72在删除之前保留commitlog的小时数
brokerRoleASYNC_MASTERSYNC_MASTER/ASYNC_MASTER/SLVAE
flushDiskTypeASYNC_FLUSH{SYNC_FLUSH / ASYNC_FLUSH}。在确认生产者之前,SYNC_FLUSH模式的代理将每个消息刷新到磁盘上。另一方面,SYNC_FLUSH模式的代理将每个消息刷新到磁盘上。

启动broker

$ ./bin/mqshutdown namesrv  # 停止namesrv
$ ./bin/mqnamesrv &    # 启动namesrv
$ ./bin/mqbroker -c /data/soft/rocketmq/conf/2m-noslave/broker-a.properties & # 启动brokeer

# 启动brokeer时如果内存不足,可以修改下面的配置
$ sed -i 's/-Xms8g -Xmx8g -Xmn4g/-Xms1g -Xmx1g -Xmn512M/' ./bin/runbroker.sh

测试

$ export NAMESRV_ADDR=192.168.92.73:9876 # 发送端设置环境变量
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

$ export NAMESRV_ADDR=192.168.92.72:9876 # 接收端设置环境变量
$ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值