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.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从 集群搭建的更多相关文章
- RocketMQ4.7.1双主双从集群搭建
导读 上一集我们已经学会了SpringBoot整合RocketMQ点我直达,今天我们来搭建双主双从高性能MQ服务集群. 简介 主从架构 Broker角色,Master提供读写,Slave只支持读,Co ...
- RocketMQ多master多salve集群搭建
一.RocketMQ集群模式简介 单Master方式 风险比较大, 一旦Broker重启或者宕机, 将导致整个环境不可用, 不建议线上使用. 多Master模式 一个集群中没有slave, 全是mas ...
- ROCKETMQ——2主2从集群部署
1.压缩包准备两台服务器镜像操作cd /optmkdir softcd soft将两个压缩包复制到 soft目录unzip apache-maven-3.2.2-bin.zipunzip rocket ...
- RocketMQ4.2 最佳实践之集群搭建
学习了RocketMQ的基本概念后,我们来看看RocketMQ最简单的使用场景.RocketMQ的服务器最简单的结构,必须包含一个NameServer和一个Broker.Producer把某个主题的消 ...
- rocketmq 两主两从异步集群搭建
1.安装JDK 需要先卸载系统默认的OPENJDK,安装 JDK1.8 64位的版本. 卸载open-jdk rpm -qa|grep java 查到open jdk的安装. 使用命令 rpm -e ...
- RocketMQ集群搭建(3m-3s-async)
RocketMQ集群搭建(3m-3s-async) 各角色介绍 角色 作用 Producer 消息发送者,将消息发送到 Broker.无状态,其与NameServer集群中的一个节点建立长连接,定期从 ...
- RocketMQ集群搭建方式
各角色介绍 Producer:消息的发送者:举例:发信者 Consumer:消息接收者:举例:收信者 Broker:暂存和传输消息:举例:邮局 NameServer:管理Broker:举例:各个邮局的 ...
- Redis集群搭建 三主三从
Redis集群介绍 Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存.Redis在3.0版本之前只支持单实例模式 虽然支持主从模式,哨兵模式 ...
- MySQL集群搭建(6)-双主+keepalived高可用
双主 + keepalived 是一个比较简单的 MySQL 高可用架构,适用于中小 MySQL 集群,今天就说说怎么用 keepalived 做 MySQL 的高可用. 1 概述 1.1 keepa ...
随机推荐
- 虚拟机VMware怎么完全卸载干净,如何彻底卸载VMware虚拟机
亲测好使. 1.禁用VM虚拟机服务 首先,需要停止虚拟机VMware相关服务.按下快捷键WIN+R,打开windows运行对话框,输入[services.msc],点击确定.如下图. 在服务管理中,找 ...
- 【CF744D】Hongcow Draws a Circle 二分+几何
[CF744D]Hongcow Draws a Circle 题意:给你平面上n个红点和m个蓝点,求一个最大的圆,满足圆内不存在蓝点,且至少包含一个红点. $n,m\le 10^3$ 题解:我们先不考 ...
- python计算均值方差
用Python求均值与方差,可以自己写,也可以借助于numpy,不过到底哪个快一点呢? 我做了个实验,首先生成9百万个样本: nlist=range(0,9000000) nlist=[float(i ...
- iOS - 网址、链接、网页地址、下载链接等正则表达式匹配(解决url包含中文不能编码的问题)
DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母.标号中除连字符(-)外不能使用其他的标点符号.级别最低的域名写在最左边,而级别最高的域名写在最右边.由多 ...
- JavaScript之prototype对象
简述prototype: 在js中,每个构造函数都有一个原型属性prototype,因为这个属性的值通常是一个对象,又叫原型对象!你不需要显式的去定义原型对象,因为每个构造函数都会一个原型属性,通常在 ...
- HDU-1003 Max Sum(动态规划,最长字段和问题)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- POJ - 1101 The Game dfs
题意:给你一个地图,上面有一些‘X',给你起点终点,让你输出从起点到终点的路径中转向(改变方向)次数最少的路径,注意,不能穿过别的’X'并且可以超过边界 题解:关于超过边界,只要在外围多加一圈‘ ’. ...
- php 实现栈结构
一.栈的定义及知识 1.定义:栈又称为栈或者堆叠,是计算机科学中的一种特殊的串列形式的抽象数据类型,特殊之处在于只允许在链表或者数组的一端(堆栈顶端指针,又称 "top")加入数据 ...
- dbms_stats.gather_table_stats详解
dbms_stats.gather_table_stats 统计表,列,索引的统计信息(包含该表的自身-表的行数.数据块数.行长等信息: 列的分析--列值的重复数.列上的空值.数据在列上的分布情 ...
- PHP主动断开与浏览器的连接
以前整理过一篇<关于PHP连接处理中set_time_limit().connection_status()和ignore_user_abort()深入解析>,是解说浏览器client断开 ...