掌桥专利:专业的专利平台
掌桥专利
首页

一种云迁移-MQ不停机迁移方法

文献发布时间:2024-04-18 19:58:26


一种云迁移-MQ不停机迁移方法

技术领域

本发明涉及云迁移领域,尤其涉及一种云迁移-MQ不停机迁移方法。

背景技术

公司在做云迁移,由阿里云迁移到UCloud云时,很多业务都用到了RocketMq,但迁移不能影响业务,这就对业务要求不停机操作。所以需要一个完善的RocketMq迁移不停机方案。

目前整租车辆资源使用率低,车辆调度完全靠线下确认问题。

发明内容

鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种云迁移-MQ不停机迁移方法。

根据本发明的一个方面,提供了一种云迁移-MQ不停机迁移方法,所述迁移方法包括:

建设MQ中间件;

切换业务系统;

下线阿里云mq消费。

可选的,所述建设MQ中间件具体包括:

步骤一:按原有集群架构1:1创建新集群;

步骤二:新机房完成扩容;

步骤三:新机房broker扩容到原nameserver。

可选的,所述步骤一:按原有集群架构1:1创建新集群具体包括:

迁移之前需要在新的数据中心部署一套rocketmq集群,版本和原数据中心需要保持一致。

可选的,所述步骤二:新机房完成扩容具体包括:

将MQ新集群的broker配置文件中的namesrv地址配置成旧集群namesrv+新集群namesrv,新集群brokername配置成broker-c、broker-d;

启动新集群,先启动namesrv,再启动broker。

可选的,所述切换业务系统具体包括:

步骤一:旧集群的两个broker:broker-a、broker-b改为禁止写入;

步骤二:应用切换nameserver地址;

步骤三:缩减nameserver和broker。

可选的,所述下线阿里云mq消费具体包括:

步骤一:确保旧集群中的消息都已经消费完成;

步骤二:确保ucloud消费完全没问题以及业务正常处理。

可选的,所述步骤三:缩减nameserver和broker具体包括:

当客户端都连接到了新的数据中心之后,对原来数据中心的broker和nameserver进行下线操作了

broker下线:

broker下线之前需要先对要下线的broker组发送禁写命令,防止下线后消息丢失;

当broker的ProduceTPS减少到0,且ConsumerMessageTPS为0时,kill掉master和slave节点了;

同样的操作,执行第二组的broker;

nameserver下线:

当原来机房的broker都下线完成之后,新机房的broker去掉连接旧机房的nameserver配置了;

当新的机房broker连接都去掉旧的机房的nameserver后,直接kill掉旧机房的nameserver服务。

本发明提供的一种云迁移-MQ不停机迁移方法,所述迁移方法包括:建设MQ中间件;切换业务系统;下线阿里云mq消费。解决了目前整租车辆资源使用率低,车辆调度完全靠线下确认问题。同时避免用户下单后无车辆可用。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的新机房完成扩容的流程图;

图2为本发明实施例提供的新机房broker扩容到原nameserver的流程框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。

下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。

如图1所示,一种云迁移-MQ不停机迁移方法,包括:

1)MQ中间件建设

步骤一:按原有集群架构1:1创建新集群。

迁移之前需要在新的数据中心部署一套rocketmq集群,版本和原数据中心需要保持一致。

步骤二:新机房完成扩容

将MQ新集群的broker配置文件中的namesrv地址配置成旧集群namesrv+新集群namesrv,新集群brokername配置成broker-c、broker-d;

启动新集群,先启动namesrv,再启动broker。

步骤三:新机房broker扩容到原nameserver,如图2所示。

因为所有的client还都连接着现有机房的nameserver,所以要把新机房部署的broker节点扩容到当前的机房,供业务使用。(注:扩容完成后需要在rocketmq控制台观察,新的broker节点是否有数据生产和消费)。

配置完成后在Cluster页面可以看到broker-c、broker-d的Today ConsumeCount项开始有数据.说明客户端开始从新集群的两个broker消费数据。

配置完成后在Cluster页面可以看到broker-c、broker-d的Today ProduceCount项开始有数据.说明客户端开始往新集群的两个broker生产数据。

2)业务系统开始切换

步骤一:旧集群的两个broker:broker-a、broker-b改为禁止写入

观察ucloud消费情况,以及业务情况。(观察阶段阿里和ucloud并行消费)。

等到新集群两个broker稳定生产消费数据且业务正常处理后。依次将所有topic对应的旧集群的两个broker:broker-a、broker-b改为禁止写入.

RocketMQ的broker节点有3种权限设置,brokerPermission=2

表示只写权限,brokerPermission=4表示只读权限,brokerPermission=6表示读写权限。通过updateBrokerConfig命令将Broker设置为只读权限,执行完之后原该Broker的写入流量会分配到集群中的其他节点,所以摘除前需要评估集群节点的负载情况。

执行:bin/mqadminupdateBrokerConfig-bx.x.x.x:10911-nx.x.x.x:9876-kbrokerPermission-v4;

将Broker设置为只读权限后,观察该节点的流量变化,直到写入流量(InTPS)掉为0表示写入流量已摘除。

执行:bin/mqadminclusterList-nx.x.x.x:9876观察写入流量

watch-n1-dbin/mqadminclusterList-n10.0.16.101:9876

注意:Uc新的集群起来后先把broker都改为禁用,否则加完servername阿里流量立马会进来。

步骤二:应用切换nameserver地址

当broker节点都注册到了新的数据中心的后,client切换到新的数据中心了。如果客户端是域名连接则直接修改DNS解析到新的数据中心nameserver即可。

针对业务使用域名mq.shouqiev.net:9876;mq1.shouqiev.net:9876.通过NDS解析到新集群

步骤三:缩减nameserver和broker

当客户端都连接到了新的数据中心之后,对原来数据中心的broker和nameserver进行下线操作了

broker下线:

(1)broker下线之前需要先对要下线的broker组发送禁写命令,防止下线后消息丢失

(2)当broker的ProduceTPS减少到0,且ConsumerMessage TPS为0时,就kill掉master和slave节点了

(3)同样的操作,执行第二组的broker

nameserver下线:

(1)当原来机房的broker都下线完成之后,新机房的broker就可以去掉连接旧机房的nameserver配置了。

(2)当新的机房broker连接都去掉旧的机房的nameserver后,直接kill掉旧机房的nameserver服务。

3)下线阿里云mq消费

步骤一:确保旧集群中的消息都已经消费完成

通过clusterList命令中OutTPS观察读出流量变化。除此之外,也通过brokerConsumeStats观察broker的积压(Diff)情况,当积压为0时,表示消费全部完成。

步骤二:确保ucloud消费完全没问题以及业务正常处理

将旧集群下线,要先下broker再下namesrv,此过程中消息不会丢失。

broker停止命令:

shmqshutdownbroker;

namesrv停止命令:

shmqshutdownnamesrv。

注意:当旧集群的namesrv全部下线,原来旧的rocketmq控制台就无法检测数据了,需要将控制台配置的namesrv改为新集群的namesrv地址。

有益效果:本发明的目的在于解决目前整租车辆资源使用率低,车辆调度完全靠线下确认问题。同时避免用户下单后无车辆可用。

以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种基于P.haul框架的云容器预拷贝在线迁移方法
  • 基于虚拟化的云数据中心可信平台、信任链构建方法、迁移方法
  • 云资源迁移方法和统一的跨平台云资源迁移能力开放接口
  • 云资源迁移方法和统一的跨平台云资源迁移能力开放接口
技术分类

06120116494187