​本文介绍本次进行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版本刚修复的bug

orderMessageEnable=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三主三从二命名服务平滑版本升级实操的更多相关文章

  1. 在三台服务器,搭建redis三主三从集群

    一.资源准备 1.准备三台服务器H1.H2.H3 172.26.237.83 H1 172.26.237.84 H2 172.26.237.85 H3 二.配置服务器 1.在H1服务器设置SSH免密登 ...

  2. 搭建Redis三主三从集群

    Redis三主三从集群规划 10.0.128.19   使用端口 7000  7001 10.0.128.22   使用端口 7002  7003 10.0.128.23   使用端口 7004  7 ...

  3. Redis Cluster 集群三主三从高可用环境搭建

    前言 Redis 是我们目前大规模使用的缓存中间件,由于它强大高效而又便捷的功能,得到了广泛的使用. Window环境下载地址:https://github.com/tporadowski/redis ...

  4. Redis集群搭建 三主三从

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

  5. redis cluster + sentinel详细过程和错误处理三主三备三哨兵

    redis cluster + sentinel详细过程和错误处理三主三备三哨兵1.基本架构192.168.70.215 7001 Master + sentinel 27001192.168.70. ...

  6. centos 7 两台机器搭建三主三从 redis 集群

    参考自:https://linux.cn/article-6719-1.htmlhttp://blog.csdn.net/xu470438000/article/details/42971091 ## ...

  7. 配置redis三主三从

    主从环境 centos7.6 redis4.0.1 主 从 192.168.181.139:6379 192.168.181.136:6379 192.168.181.136:6380 192.168 ...

  8. K8S部署Redis Cluster集群(三主三从模式) - 部署笔记

    一.Redis 介绍 Redis代表REmote DIctionary Server是一种开源的内存中数据存储,通常用作数据库,缓存或消息代理.它可以存储和操作高级数据类型,例如列表,地图,集合和排序 ...

  9. k8s 上部署 Redis 三主三从 集群

    目录 介绍 为什么要使用Redis? 什么是Redis群集? 在Kubernetes中部署Redis集群 从 GitHub 上下载: 创建pv 创建statefulset 创建service 初始化 ...

随机推荐

  1. Android为TV端助力之解决setOnItemSelectedListener一进来就自动执行一次的问题

    我们经常会遇到listview或者其他view设置setOnItemSelectedListener监听时,一加载界面,setOnItemSelectedListener监听就会自动执行一遍,导致你第 ...

  2. Git:九、删除项目

    1.删除远程仓库 1)打开有绿色客隆按钮的仓库代码页面,选择Settings 2)把页面拉到最下边 2.删除本地仓库 1)先删.git隐藏文件 2)强行删除仓库文件夹 显示所有文件,包括隐藏的:ls ...

  3. cmd 执行Dcpromo错误:在该 SKU 上不支持 Active Directory 域服务安装向导,Windows Server 2008 R2 Enterprise 配置AD(Active Directory)域控制器

    今天,要安装AD域控制器,运行dcpromo结果提示:在该 SKU 上不支持 Active Directory 域服务安装向导. 以前弄的时候直接就通过了,这次咋回事?终于搞了大半天搞定了. 主要原因 ...

  4. 【普及篇】通信能力API及其前景分析

    ** 1.目前通信行业发展背景**运营商基础通信能力的价值逐渐提升进入数字化时代以来,信息产业正迎来新变革与新发展——网络信息技术与社会各领域全面深度融合,为工业制造.智慧城市等各行业赋能.运营商传统 ...

  5. elasticsearch常用命令备注

    1.检查集群健康状态 curl 'localhost:9200/_cat/health?v' 2.检查节点健康状态 curl 'localhost:9200/_cat/nodes?v' 3.新增一条索 ...

  6. 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之二 || 后端项目搭建

    前言 至于为什么要搭建.Net Core 平台,这个网上的解释以及铺天盖地,想了想,还是感觉重要的一点,跨平台,嗯!没错,而且比.Net 更容易搭建,速度也更快,所有的包均有Nuget提供,不再像以前 ...

  7. 使用 Moq 测试.NET Core 应用 -- Mock 方法

    第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 本文介绍使用Moq来Mock方法. 使用的代码: https://git ...

  8. 一次composer错误使用引发的思考

    一次composer错误使用引发的思考 这个思考源自于一个事故.让我对版本依赖重新思考了一下. 事故现象 一个线上的管理后台,一个使用laravel搭建的管理后台,之前在线上跑的好好的,今天comop ...

  9. Spring之旅第二篇-Spring IOC概念及原理分析

    一.IOC概念 上一篇已经了解了spring的相关概念,并且创建了一个Spring项目.spring中有最重要的两个概念:IOC和AOP,我们先从IOC入手. IOC全称Inversion of Co ...

  10. Java集合详解1:ArrayList,Vector与Stack

    今天我们来探索一下LinkedList和Queue,以及Stack的源码. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 喜欢的话麻烦star一下 ...