RocketMQ三主三从二命名服务平滑版本升级实操
本文介绍本次进行RocketMQ平滑过渡升级的实际操作
前文已经介绍过了升级基本原理,主要思想就是先升级NameSrv(命名服务)然后在升级broker节点。broker节点先升级master节点然后再升级slave节点。
我们先看下RocketMQ架构图
这里介绍实际操作是怎么样。
首先介绍我们使用RocketMQ实际架设的情况。
主机一共6台分别是:
10.10.10.1~10.10.10.6
三主三从分别在这六台机器上,其中有两台部署了broker和namesrv(没错实际情况就是这样)
第一阶段准备文件
实际操作步骤如下:
1、可执行文件准备
根据主机实际情况先将RocketMQ执行文件分别上传到六台服务器
解压
unzip rocketmq-all-4.4.0-bin-release.zip
注意:这里主要看你的解压目录,如果配置文件没有指定rocketmq使用的文件目录,一般默认和rocketmq-all-4.4.0-bin-release这个文件夹相同的目录的,如果执行目录,需要设置相同目录
2、编辑并上传配置文件
因为是三主三从异步刷盘数据模式,所以在
rocketmq-all-4.4.0-bin-release/conf/2m-2s-async/目录设置好配置文件,如下图所示
配置文件内容这里根据实际情况添加,本人会把多有配置都放在配置文件里,其中包括namesrvAddr 这个配置选项。
然后修改对应可执行文件的内存设置
修改sh脚本jvm内存限制(根据自己实际情况),如果你有指定jdk/jre环境的话可以在这里指定路径
3、设置脚本的可执行权限
一下三个文件需要设置可执行权限
设置权限主要是如下几个命令
chgrp rocketmq rocketmq-all-4.4.0-bin-release -R #设置文件及子文件的用户组chown rocketmq rocketmq-all-4.4.0-bin-release -R #设置可执行文件及子文件的拥有者
设置了用户和用户组之后也可以忽略设置可执行权限
第二阶段升级namesrv服务
如果第一阶段内容都没有问题那么我们开始执行升级namesrv服务
1、namesrv服务我是部署在10.10.10.1和10.10.10.2这两台服务器的
su - rocketmq #切换用户cd alibaba-rocketmq/ #进入3.4.8版本文件还行目录sh bin/mqshutdown namesrv #停止namesrv服务cd ../rocketmq-all-4.4.0-bin-release/ #进入到4.4版本目录nohup sh bin/mqnamesrv -c conf/nameserver.properties & #启动新namesrv服务tail -f ~/logs/rocketmqlogs/namesrv.log #启动之后验证服务是否正常启动sh bin/mqadmin clusterList -n 10.10.10.1:9876 #验证服务列表是否联通
上述过程如果没有问题继续进行下一台namesrv升级切换(等待一切正常之后在处理)
第二台服务器10.10.10.2重复刚才的动作,切换完成就再看看生产消费情况,如果一切正常,我们就完成了namesrv的切换操作。
nameserver.properties 配置文件件属性如下:
eEpollNativeSelector=true #这个属性之前一直不能处理4.4版本刚修复的bugorderMessageEnable=true
第三阶段 升级broker节点
升级broker节点是重中之重,消息队列数据主要都在这里进行交互,一单失败不要着急,集群多节点是有负载的。不过尽量在不是业务高峰期的时候来升级broker节点。
先升级master然后在升级对应的slave节点
下面开始升级broker节点
cd alibaba-rocketmq/ #进入之前版本目录sh bin/mqshutdown broker #停止broker节点cd ../rocketmq-all-4.4.0-bin-release/ #进入新版本目录nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a.properties & #启动新版本broker服务sh bin/mqadmin clusterList -n 10.10.10.1:9876 #检查#或sh bin/mqadmin clusterList -n 10.10.10.2:9876 #检查
然后执行此节点的slave节点broker(注意配置文件替换)
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a.properties &nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a-s.properties &nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b.properties &nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b-s.properties &nohup sh bin/mqbroker -c conf/2m-2s-async/broker-c.properties &nohup sh bin/mqbroker -c conf/2m-2s-async/broker-c-s.properties &
然后检查各个节点情况(注意:启动节点的以后要观察刚刚启动的节点是否正常工作之后在进行其他节点的升级启动工作,有些数据量大的节点会启动很慢。)
观察没问题各个节点都比较正常这个时候证明升级成功
总结
升级的时候不要着急,一个节点一个节点的进行升级,先升级master节点,在升级slave节点。升级完一个节点通过日志、namesrv、吞吐量进行验证是否正常工作。

RocketMQ三主三从二命名服务平滑版本升级实操的更多相关文章
- 在三台服务器,搭建redis三主三从集群
一.资源准备 1.准备三台服务器H1.H2.H3 172.26.237.83 H1 172.26.237.84 H2 172.26.237.85 H3 二.配置服务器 1.在H1服务器设置SSH免密登 ...
- 搭建Redis三主三从集群
Redis三主三从集群规划 10.0.128.19 使用端口 7000 7001 10.0.128.22 使用端口 7002 7003 10.0.128.23 使用端口 7004 7 ...
- Redis Cluster 集群三主三从高可用环境搭建
前言 Redis 是我们目前大规模使用的缓存中间件,由于它强大高效而又便捷的功能,得到了广泛的使用. Window环境下载地址:https://github.com/tporadowski/redis ...
- Redis集群搭建 三主三从
Redis集群介绍 Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存.Redis在3.0版本之前只支持单实例模式 虽然支持主从模式,哨兵模式 ...
- redis cluster + sentinel详细过程和错误处理三主三备三哨兵
redis cluster + sentinel详细过程和错误处理三主三备三哨兵1.基本架构192.168.70.215 7001 Master + sentinel 27001192.168.70. ...
- centos 7 两台机器搭建三主三从 redis 集群
参考自:https://linux.cn/article-6719-1.htmlhttp://blog.csdn.net/xu470438000/article/details/42971091 ## ...
- 配置redis三主三从
主从环境 centos7.6 redis4.0.1 主 从 192.168.181.139:6379 192.168.181.136:6379 192.168.181.136:6380 192.168 ...
- K8S部署Redis Cluster集群(三主三从模式) - 部署笔记
一.Redis 介绍 Redis代表REmote DIctionary Server是一种开源的内存中数据存储,通常用作数据库,缓存或消息代理.它可以存储和操作高级数据类型,例如列表,地图,集合和排序 ...
- k8s 上部署 Redis 三主三从 集群
目录 介绍 为什么要使用Redis? 什么是Redis群集? 在Kubernetes中部署Redis集群 从 GitHub 上下载: 创建pv 创建statefulset 创建service 初始化 ...
随机推荐
- github常见操作和常见错误!错误提示:fatal: remote origin already exist
如果输入$ git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git 提示出错信息:fatal: remote ...
- 不一样的 SQL Server 日期格式化
不一样的 SQL Server 日期格式化 Intro 最近统计一些数据,需要按天/按小时/按分钟来统计,涉及到一些日期的格式化,网上看了一些文章大部分都是使用 CONVERT 来转换的,SQL Se ...
- Kubernetes初探[1]:部署你的第一个ASP.NET Core应用到k8s集群
Kubernetes简介 Kubernetes是Google基于Borg开源的容器编排调度引擎,作为CNCF(Cloud Native Computing Foundation)最重要的组件之一,它的 ...
- Ubuntu16 Nginx的安装与基本配置
关于Nginx 它是一个轻量级.高性能.稳定性高.并发性好的HTTP和反向代理服务器,当我们搭建自己的应用时,通常用它作为反向代理服务器,图片服务器和负载均衡. 1.Ubuntu 16安装 Nginx ...
- 286万QPS!腾讯云TDSQL打造数据库领域的“超音速战机”
Bloodhound SSC超音速汽车将陆地极限速度提升到1678公里/小时,号称陆地“超音速战斗机”.无独有偶,同样也在2017年,在英特尔®.腾讯金融云团队的共同见证下,腾讯云数据库TDSQL采用 ...
- 死磕 java集合之CopyOnWriteArraySet源码分析——内含巧妙设计
问题 (1)CopyOnWriteArraySet是用Map实现的吗? (2)CopyOnWriteArraySet是有序的吗? (3)CopyOnWriteArraySet是并发安全的吗? (4)C ...
- Prometheus安装和配置node_exporter监控主机
Node_exporter是可以在* Nix和Linux系统上运行的计算机度量标准的导出器. Node_exporter 主要用于暴露 metrics 给 Prometheus,其中 metrics ...
- Android APP应用启动页白屏(StartingWindow)优化
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 StartingWindow 的处理方式: 使用系统默认的 StartingWindow :用户点了应用图标启动应用,马上弹出系统默 ...
- java~api返回值的标准化
api返回值的标准化 例如 {"status":200,"message":"操作成功","data":"{\ ...
- SpringBoot是怎么在实例化时候将bean加载进入容器中
之前写过的很多spring文章,都是基于应用方面的,这次的话,就带大家来一次对spring的源码追踪,看一看spring到底是怎么进行的初始化,如何创建的bean,相信很多刚刚接触spring的朋友, ...