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. zz扔掉anchor!真正的CenterNet——Objects as Points论文解读

    首发于深度学习那些事 已关注写文章   扔掉anchor!真正的CenterNet——Objects as Points论文解读 OLDPAN 不明觉厉的人工智障程序员 ​关注他 JustDoIT 等 ...

  2. zz阿里小蜜—智能服务技术实践及场景探索(AI先行者大会)Final.pdf

    SLQA+ 模型

  3. Mybatis中的@Param注解(自己没试过)

    @Param是MyBatis所提供的(org.apache.ibatis.annotations.Param),作为Dao层的注解,作用是用于传递参数,从而可以与SQL中的的字段名相对应//https ...

  4. set去重应用

    1.其中涉及__hash__与__eq__这两个内置方法. 2.列如: 要求用类生成多个对象,其中姓名和性别相同的对象可认为是同一个人,用set原理做去重 class People: def __in ...

  5. cookie清除及其他操作

    JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 一:设置co ...

  6. [LeetCode] 187. Repeated DNA Sequences 求重复的DNA序列

    All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACG ...

  7. 第01组 Beta冲刺(5/5)

    队名:007 组长博客: https://www.cnblogs.com/Linrrui/p/12031875.html 作业博客: https://edu.cnblogs.com/campus/fz ...

  8. Codeforces Round #606 (Div. 1) Solution

    从这里开始 比赛目录 我菜爆了. Problem A As Simple as One and Two 我会 AC 自动机上 dp. one 和 two 删掉中间的字符,twone 删掉中间的 o. ...

  9. [转载]3.1 UiPath鼠标操作元素的介绍和使用

    一.鼠标(mouse)操作的介绍 模拟用户使用鼠标操作的一种行为,例如单击,双击,悬浮.根据作用对象的不同我们可以分为对元素的操作.对文本的操作和对图像的操作 二.鼠标对元素的操作在UiPath中的使 ...

  10. Javascript 笔记:原型和原型链

    一.函数对象和普通对象 凡是通过new Function()创建的都是函数对象,其它的都是普通对象.Function,Object,Array,Number,String,Boolean,Date是J ...