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 初始化 ...
随机推荐
- Video/Audio禁止快进(退)
首先接着上个随笔.上个随笔主要介绍了视频音频的相关操作.属性和方法.这里主要记录一个应用:禁止快进(快退同理). 思路:监听快进事件(此处是监听播放时间更新),利用一个缓存的时间和播放到的时间进行对比 ...
- Python学习日记(一):拜见小主——Python
近日学习Python,特将学习过程及一点心得记录于此. 由于之前做过一个Java爬虫的项目,虽然很长时间没有碰过爬虫,但是小郭同学有一颗不死的爬虫心,哈哈.最近在互联网上找一些电影的时候,有很多电影只 ...
- 快速构建SPA框架SalutJS--项目工程目录 三
配置文件 在开始我们的第一个界面之前,我们需要把初始的html和config文件配置好.html非常简单,只需要一个div作为最外部的容器包裹着所有界面即可: <!DOCTYPE html> ...
- Java小白如何一步步学好Java,听听企业Java培训师的实践经验吧
今天我准备给小主展示一篇Java培训老师的文章,希望能给Java小白一个学好Java的路径或者提示.以下就是原文: 从大学到现在,我使用Java已经将近20年,日常也带实习生,还在公司内部做train ...
- JS定义函数的2种方式以及区别简述(为什么推荐第二种方式)
无意中看到了阮一峰大神多年前的一篇博客: 12种不宜使用的Javascript语法 看到第9条的时候受到了启发,感觉之前没怎么理解清楚的一些问题好像突然就清晰了,如下图 可能光这样看,有些小伙 ...
- Spring Boot 集成 Swagger,生成接口文档就这么简单!
之前的文章介绍了<推荐一款接口 API 设计神器!>,今天栈长给大家介绍下如何与优秀的 Spring Boot 框架进行集成,简直不能太简单. 你所需具备的基础 告诉你,Spring Bo ...
- [.NET跨平台]Jexus独立版本的便利与过程中的一些坑
本文环境与前言 之前写过一篇相关的文章:在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验 当时的部署还是比较繁琐的,而且需要联网下载各种东西..有兴趣的可以看看, ...
- 虎牙直播张波:掘金Nginx日志
大家好!我是来自虎牙直播技术保障部的张波.今天主要会从数据挖掘层面跟大家探讨一下 Nginx 的价值.OpenResty 在虎牙的应用场景主要 WAF 和流控等方面,我今天主要分享的是“ Nginx ...
- qml demo分析(text-字体展示)
上一篇文章分析了一个小游戏,使用qml编写界面+js进行复杂逻辑控制,算是一个比较完整的qml示例代码了,今天就不那么继续变态啦,来看一个简单的字体示例程序吧,该示例代码比较简单,主要是展示了几个简单 ...
- 【Android Studio安装部署系列】二、Android Studio开发环境搭建
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio开发环境安装步骤 下载Android Studio 下载地址: http://www.wanandroi ...