1.安装JDK

需要先卸载系统默认的OPENJDK,安装 JDK1.8 64位的版本。

卸载open-jdk

rpm -qa|grep java

查到open jdk的安装。

使用命令

rpm -e --nodeps ***

卸载。

安装 jdk1.8

tar -zxvf jdk-8u191-linux-x64.tar.gz 解压JDK

编辑

/etc/profile

在最后增加配置

export JAVA_HOME=/work/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH

rocketmq 集群搭建

1.部署架构

我们有两台节点

IP为 10.87.134.74,10.87.134.75,两台机器均运行NAMESERVER.

在74 上部署BROKER A MASTER,BROKER B SLAVE

在75 上部署BROKER A SLAVE,BROKER B MASTER

2.修改内存配置

在默认情况下 rocketmq 配置运行内存比较大,如果机器内存不够可以做些调整。

编辑 bin 目录下的runbroker.sh文件

JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"

编辑 bin 目录下的 runserver.sh 文件

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

3.准备集群配置文件

我们安装的主从异步模式

程序解压后在conf 有如下的配置文件

编辑节点74 的配置文件

编辑broker-a.properties 内容:

brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH listenPort=6001
autoCreateTopicEnable=true
namesrvAddr=10.87.134.74:9876;10.87.134.75:9876
storePathRootDir=/work/rocketmq-4.5.1/store/broker-a
storePathCommitLog=/work/rocketmq-4.5.1/store/broker-a/commitlog
storePathConsumeQueue=/work/rocketmq-4.5.1/store/broker-a/consumequeue
storePathIndex=/work/rocketmq-4.5.1/store/broker-a/index
storeCheckpoint=/work/rocketmq-4.5.1/store/broker-a/checkpoint
abortFile=/work/rocketmq-4.5.1/store/broker-a/abort

编辑broker-b-s.properties 文件内容

brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH listenPort=7001
autoCreateTopicEnable=true namesrvAddr=10.87.134.74:9876;10.87.134.75:9876
storePathRootDir=/work/rocketmq-4.5.1/store/broker-b
storePathCommitLog=/work/rocketmq-4.5.1/store/broker-b/commitlog
storePathConsumeQueue=/work/rocketmq-4.5.1/store/broker-b/consumequeue
storePathIndex=/work/rocketmq-4.5.1/store/broker-b/index
storeCheckpoint=/work/rocketmq-4.5.1/store/broker-b/checkpoint
abortFile=/work/rocketmq-4.5.1/store/broker-b/abort

编辑75 配置文件

编辑 broker-b.properties 文件

terName=DefaultCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH listenPort=7001
autoCreateTopicEnable=true namesrvAddr=10.87.134.74:9876;10.87.134.75:9876
storePathRootDir=/work/rocketmq-4.5.1/store/broker-b
storePathCommitLog=/work/rocketmq-4.5.1/store/broker-b/commitlog
storePathConsumeQueue=/work/rocketmq-4.5.1/store/broker-b/consumequeue
storePathIndex=/work/rocketmq-4.5.1/store/broker-b/index
storeCheckpoint=/work/rocketmq-4.5.1/store/broker-b/checkpoint
abortFile=/work/rocketmq-4.5.1/store/broker-b/abort

编辑 broker-a-s.properties 文件

brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH listenPort=6001
autoCreateTopicEnable=true namesrvAddr=10.87.134.74:9876;10.87.134.75:9876 storePathRootDir=/work/rocketmq-4.5.1/store/broker-a
storePathCommitLog=/work/rocketmq-4.5.1/store/broker-a/commitlog
storePathConsumeQueue=/work/rocketmq-4.5.1/store/broker-a/consumequeue
storePathIndex=/work/rocketmq-4.5.1/store/broker-a/index
storeCheckpoint=/work/rocketmq-4.5.1/store/broker-a/checkpoint
abortFile=/work/rocketmq-4.5.1/store/broker-a/abort
listenPort:是broker 对外监听的端口。

我们需要创建以下的目录:
store/broker-a
store/broker-a/commitlog
store/broker-a/consumequeue
store/broker-a/index 目录

在两个节点上分别创建 broker-a,broker-b的目录。

4.启动rocketmq ,并检查是否正确。

1.启动nameserver
在两个节点上分别执行:
nohup sh /work/rocketmq-4.5.1/bin/mqnamesrv >/work/rocketmq-4.5.1/logs/mqnamesrv.log 2>&1 &
2.按照下面的顺序执行

  1.启动broker-a (节点1)
    nohup sh /work/rocketmq-4.5.1/bin/mqbroker -c /work/rocketmq-4.5.1/conf/2m2sasync/broker-a.properties > /work/rocketmq-4.5.1/logs/broker-a.log 2>&1 &

  2.启动broker-a-s (节点2)
    nohup sh /work/rocketmq-4.5.1/bin/mqbroker -c /work/rocketmq-4.5.1/conf/2m2sasync/broker-a-s.properties > /work/rocketmq-4.5.1/logs/broker-a-s.log 2>&1 &

  3.启动broker-b (节点2)
    nohup sh /work/rocketmq-4.5.1/bin/mqbroker -c /work/rocketmq-4.5.1/conf/2m2sasync/broker-b.properties > /work/rocketmq-4.5.1/logs/broker-b.log 2>&1 &

  4.启动broker-b-s (节点1)
    nohup sh /work/rocketmq-4.5.1/bin/mqbroker -c /work/rocketmq-4.5.1/conf/2m2sasync/broker-b-s.properties > /work/rocketmq-4.5.1/logs/broker-b-s.log 2>&1 &

3. 查看节点配置是否正确

执行命令 ./bin/mqadmin clusterList -n 10.87.134.75:9876

   

  出现4个这样的配置说明,大功告成了。

5.注意事项

故障1

在启动 broker 时报如下错误。

ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! !!

解决办法:

注释上面三行,增加 JAVA_HOME即可。


 
 

rocketmq 两主两从异步集群搭建的更多相关文章

  1. centos7下Etcd3集群搭建

    一.环境介绍 etcd主要功能是分布式的存储键值,优点不多说了,分布是集群,自动选举等等,自行百度,主要说下配置方法,折腾了几天,终于优点眉目了,记录下操作方法,本文参考了如下链接 https://w ...

  2. RabbmitMQ集群搭建流程

    参考资料 1.rabbmitMQ集群搭建http://my.oschina.net/guol/blog/186445http://blog.ftofficer.com/2010/03/translat ...

  3. 重要参考步骤---ProxySQL Cluster 集群搭建步骤

    环境 proxysql-1:192.168.20.202 proxysql-2:192.168.20.203 均采用yum方式安装 # cat <<EOF | tee /etc/yum.r ...

  4. RocketMQ 2主2从 集群搭建

    安装环境 jdk1.7 alibaba-rocketmq-3.2.6.tar.gz VM虚拟机redhat6.5-x64:192.168.1.201  192.168.1.202 192.168.1. ...

  5. Redis安装、主从配置及两种高可用集群搭建

    Redis安装.主从配置及两种高可用集群搭建 一.            准备 Kali Linux虚拟机 三台:192.168.154.129.192.168.154.130.192.168.154 ...

  6. 虚拟机下 solr7.1 cloud 集群搭建 (手动解压和官方脚本两种方式)

    准备工作: vmware workstation 12,OS使用的是ubuntu16.04,三台虚拟机搭建一个solr集群,zookeeper共用这三台虚拟机组成zookeeper集群. zookee ...

  7. RocketMQ集群搭建

    1.RocketMQ介绍 1.1. 简介 RocketMQ 是一款分布式.队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅 ...

  8. RocketMQ集群搭建(3m-3s-async)

    RocketMQ集群搭建(3m-3s-async) 各角色介绍 角色 作用 Producer 消息发送者,将消息发送到 Broker.无状态,其与NameServer集群中的一个节点建立长连接,定期从 ...

  9. RocketMQ 集群搭建--双Master方案

    安装环境 jdk1.7 alibaba-rocketmq-3.2.6.tar.gz VM虚拟机redhat6.5-x64:192.168.1.201  192.168.1.202 Xshell4 部署 ...

随机推荐

  1. JDOJ 1162 是否闰年

    1162: 是否闰年 https://neooj.com:8082/oldoj/problem.php?id=1162 题目描述 输入一个年份year,求year是否是闰年,如果是闰年输出L,否则输出 ...

  2. map、set 使用方法 | 1022 图书馆信息查询

    看了答案才知道了这题的各种骚操作,然后敲了一顿骚键盘,然后wa.调了很久,才发现要规格化打印……mdzz…… 注:加粗代码为傻逼规格化打印代码: #include <stdio.h> #i ...

  3. 复杂模拟 | 1014 模拟K个同时到来的人在N个窗口,每个窗口只能站M个人的银行排队

    这题我以为还是之前银行排队的思路,但是做着做着就做不下去了了.看了答案我才理解到底是什么个思路. 是这样的:不同于之前排队的题,这里的K个人是同时到来的.所以首先应该让K个人的前N*M(也就是黄线内的 ...

  4. C语言 某数输出二进制的某位

    如题: 输入一个整数,截取它对应的二进制位中从右到左的第8-11位(最右边为第0位). **输入格式要求:"%d" 提示信息:"请输入一个整数:" **输出格式 ...

  5. [BJOI2019]勘破神机(第一类斯特林数,斐波那契数列)

    真的是好题,只不过强行多合一有点过分了…… 题目大意: $T$ 组数据.每个测试点中 $m$ 相同. 对于每组数据,给定 $l,r,k$,请求出 $\dfrac{1}{r-l+1}\sum\limit ...

  6. [LeetCode] 286. Walls and Gates 墙和门

    You are given a m x n 2D grid initialized with these three possible values. -1 - A wall or an obstac ...

  7. aicoder实习svn内部培训教程

    1 svn介绍 都已经用了git,为什么还要介绍svn呢?为了让aicoder.com的学员能够掌握多种的源代码管理工具的使用方法,更快的融入到项目开发中,特整理此文档. 1.1 项目管理中的版本控制 ...

  8. python运维开发常用模块(5)文件目录对比模块filecmp

    1.filecmp模块介绍 当我们进行代码审计或校验备份结果时,往往需要检查原始与目 标目录的文件一致性,Python的标准库已经自带了满足此需求的模块 filecmp.filecmp可以实现文件.目 ...

  9. iis7.5和iis8上传文件大小限制和上传时间限制

    在IIS 6.0中,不设置默认大小为4M,设置文件上传大小的方法,maxRequestLength(KB),executionTimeout(毫秒),配置如下节点: <system.web> ...

  10. Laravel源码解析之model(代码)

    本篇文章给大家带来的内容是关于Laravel源码解析之model(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言 提前预祝猿人们国庆快乐,吃好.喝好.玩好,我会在电视上看 ...