安装环境

  jdk1.7

  alibaba-rocketmq-3.2.6.tar.gz

  VM虚拟机redhat6.5-x64:192.168.1.201  192.168.1.202 192.168.1.203  192.168.1.204

  Xshell4

部署方案

IP

主机名

用途

Broker角色

192.168.1.201

broker-a

NameServer,Broker

Master

192.168.1.202

broker-b

NameServer, Broker

Master

192.168.1.203

broker-a-s

NameServer, Broker

Slave

192.168.1.204

broker-b-s

NameServer, Broker

Slave

安装步骤:【两台机器同样操作  以201为例】

步骤一:解压安装文件alibaba-rocketmq-3.2.6.tar.gz

[root@ rocketmq]# tar -zxvf alibaba-rocketmq-3.2..tar.gz -C /usr/local
[root@ rocketmq]# mv alibaba-rocketmq rocketmq

步骤二:修改配置

  配置一:创建存储路径 用于存储队列 索引 提交日志等信息

[root@ rocketmq]# mkdir -p /usr/local/rocketmq/store
[root@ rocketmq]# mkdir -p /usr/local/rocketmq/store/commitlog
[root@ rocketmq]# mkdir -p /usr/local/rocketmq/store/consumequeue
[root@ rocketmq]# mkdir -p /usr/local/rocketmq/store/index

配置二:Hosts添加信息

192.168.1.201 rocketmq-nameserver1
192.168.1.202 rocketmq-nameserver2
192.168.1.203 rocketmq-nameserver3
192.168.1.204 rocketmq-nameserver4
192.168.1.201 rocketmq-master1
192.168.1.202 rocketmq-master2
192.168.1.203 rocketmq-slave1
192.168.1.204 rocketmq-slave2

重启网卡:service network restart

相互ping一下,在201机器上ping 192.168.1.202   ping  rocketmq-nameserver2   ping  rocketmq-master2 。 202 203 204机器上也一样。

配置三:RocketMQ配置文件:

同步双写,配置目录:2m-2s-async

异步刷盘,配置目录:2m-2s-sync

#
vim /usr/local/rocketmq/conf/2m-2s-sync/broker-a.properties
#
vim /usr/local/rocketmq/conf/2m-2s-sync/broker-b.properties
#
vim /usr/local/rocketmq/conf/2m-2s-sync/broker-a-s.properties
#
vim /usr/local/rocketmq/conf/2m-2s-sync/broker-b-s.properties
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字 broker-a.properties填broker-a broker-b.properties填broker-b
brokerName=broker-a
# 表示 Master,> 表示 Slave
brokerId=
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1: rocketmq-nameserver2: rocketmq-nameserver3: rocketmq-nameserver4:
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=
#删除文件时间点,默认凌晨 4点
deleteWhen=
#文件保留时间,默认 小时
fileReservedTime=
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=
#destroyMapedFileIntervalForcibly=
#redeleteHangedFileInterval=
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=
#存储路径
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=
#flushCommitLogLeastPages=
#flushConsumeQueueLeastPages=
#flushCommitLogThoroughInterval=
#flushConsumeQueueThoroughInterval=
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=
#拉消息线程池数量
#pullMessageThreadPoolNums=
注意:
brokerName:
201 broker-a
202 broker-b
203 broker-a-s
204 broker-b-s
brokerId
201 202 是master 配置brokerId=0
203 204 是slave  配置brokerId=1
brokerRole
201 202是master 配置 brokerRole=SYNC_MASTER
203 204是slave配置 brokerRole=SLAVE
配置四:修改日志配置文件
[root@ conf]# mkdir -p /usr/local/rocketmq/logs
[root@ conf]# cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml

配置五:修改启动脚本参数 Xms和Xmx至少是1G  否则启动不起来  Xmn一般是前者的一半

vim /usr/local/rocketmq/bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m" vim /usr/local/rocketmq/bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"

步骤三:启动:先启动两台机器的NameServer,再启动两台机器的Borker,关机的时候顺序相反,先关闭两台机器的Broker,再关闭两台机器的Nameserver。在启动 BrokerServer 之前先关闭防火墙.

启动一:NameServer
cd /usr/local/rocketmq/bin
nohup sh mqnamesrv &
#查看进程
jps
#查看日志
tail -f -n /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log #启动二:BrokerServer A 192.168.1.201
cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null >& &
netstat -ntlp
jps
tail -f -n /usr/local/rocketmq/logs/rocketmqlogs/broker.log
tail -f -n /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log #启动三:BrokerServer B 192.168.1.202
cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null >& &
netstat -ntlp
jps
tail -f -n /usr/local/rocketmq/logs/rocketmqlogs/broker.log
tail -f -n /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log #启动四:BrokerServer B 192.168.1.203
cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a-s.properties >/dev/null >& &
netstat -ntlp
jps
tail -f -n /usr/local/rocketmq/logs/rocketmqlogs/broker.log
tail -f -n /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log #启动五:BrokerServer B 192.168.1.204
cd /usr/local/rocketmq/bin
nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b-s.properties >/dev/null >& &
netstat -ntlp
jps
tail -f -n /usr/local/rocketmq/logs/rocketmqlogs/broker.log
tail -f -n /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
												

RocketMQ 2主2从 集群搭建的更多相关文章

  1. RocketMQ4.7.1双主双从集群搭建

    导读 上一集我们已经学会了SpringBoot整合RocketMQ点我直达,今天我们来搭建双主双从高性能MQ服务集群. 简介 主从架构 Broker角色,Master提供读写,Slave只支持读,Co ...

  2. RocketMQ多master多salve集群搭建

    一.RocketMQ集群模式简介 单Master方式 风险比较大, 一旦Broker重启或者宕机, 将导致整个环境不可用, 不建议线上使用. 多Master模式 一个集群中没有slave, 全是mas ...

  3. ROCKETMQ——2主2从集群部署

    1.压缩包准备两台服务器镜像操作cd /optmkdir softcd soft将两个压缩包复制到 soft目录unzip apache-maven-3.2.2-bin.zipunzip rocket ...

  4. RocketMQ4.2 最佳实践之集群搭建

    学习了RocketMQ的基本概念后,我们来看看RocketMQ最简单的使用场景.RocketMQ的服务器最简单的结构,必须包含一个NameServer和一个Broker.Producer把某个主题的消 ...

  5. rocketmq 两主两从异步集群搭建

    1.安装JDK 需要先卸载系统默认的OPENJDK,安装 JDK1.8 64位的版本. 卸载open-jdk rpm -qa|grep java 查到open jdk的安装. 使用命令 rpm -e ...

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

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

  7. RocketMQ集群搭建方式

    各角色介绍 Producer:消息的发送者:举例:发信者 Consumer:消息接收者:举例:收信者 Broker:暂存和传输消息:举例:邮局 NameServer:管理Broker:举例:各个邮局的 ...

  8. Redis集群搭建 三主三从

    Redis集群介绍 Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存.Redis在3.0版本之前只支持单实例模式 虽然支持主从模式,哨兵模式 ...

  9. MySQL集群搭建(6)-双主+keepalived高可用

    双主 + keepalived 是一个比较简单的 MySQL 高可用架构,适用于中小 MySQL 集群,今天就说说怎么用 keepalived 做 MySQL 的高可用. 1 概述 1.1 keepa ...

随机推荐

  1. Centos7.0 配置docker 镜像加速

    在Docker Hub官网上注册帐号,即可下载使用仓库里的全部的docker镜像.而因为网络原因,国内的开发者没办法流畅的下载镜像,经常会出现下载中断的错误.解决方法就是使用国内的容器Hub加速服务, ...

  2. exml自动加载图片

    常规H5和微信小游戏同样有效 一.exml自动加载图片 有两张图片 图片未放入defatult.res.json的资源组里,未预先加载包含2张图片的资源组,仅仅在default.res.json里有图 ...

  3. [C#/Java] C#中调用Servlet示例

    需求 通用消息接口使用servlet作为服务器端服务接口,第三方应用程序通过http post的方式调用servlet,实现与通用消息接口的调用连接. 参数说明如下: msgTitle:消息标题,描述 ...

  4. ios atomic nonatomic区别

    atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作.         atomic 设置成员变量的@property属性时,默认为atomic,提供多线程安全 ...

  5. vue--循环列表

    <template> <div id="app"> <p v-for="x in list">{{x}}</p> ...

  6. 世界时区和Java时区详解

    0.引言 Druid中时区的问题一直困扰着我们,所以我专门去研究了一下世界时区和Java中的时区,对使用Druid很用帮助. 1.UTC时间&GMT时间 UTC时间是时间标准时间(Univer ...

  7. ubuntu查看隐藏文件夹

    打开所要查看的文件目录,然后ctrl + h 快捷键可以显示隐藏文件 例如在/home目录下可以看到以下隐藏文件

  8. POJ 2653 - Pick-up sticks - [枚举+判断线段相交]

    题目链接:http://poj.org/problem?id=2653 Time Limit: 3000MS Memory Limit: 65536K Description Stan has n s ...

  9. maven报错集

    1.install报错解决[致命错误: 在类路径或引导类路径中找不到程序包 java.lang] Windows分隔符英文分号 <bootclasspath>${java.home}/li ...

  10. ubuntu 下关闭apache服务自动启动

    最近在自己的ubuntu安装了apache服务器,每次开机的时候通过:   ps  -A    命令发现apache服务总是自动启动,如下: 本来自己的电脑内存就小,现在也不用这个服务,所以想让apa ...