CN110673941B - 多机房中微服务的迁移方法、电子设备及存储介质 - Google Patents
多机房中微服务的迁移方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110673941B CN110673941B CN201910928042.4A CN201910928042A CN110673941B CN 110673941 B CN110673941 B CN 110673941B CN 201910928042 A CN201910928042 A CN 201910928042A CN 110673941 B CN110673941 B CN 110673941B
- Authority
- CN
- China
- Prior art keywords
- migrated
- room
- host computer
- computer room
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多机房中微服务的迁移方法、电子设备及存储介质,其中,该方法包括:根据针对待迁移微服务的数据迁移请求,确定待迁移微服务对应的源主机房以及目标主机房;利用开关组件关闭待迁移微服务在源主机房的对外数据访问;生成探针数据,将探针数据写入源主机房的数据访问日志中,并将源主机房的数据访问日志同步至目标主机房;目标主机房读取数据访问日志进行数据库更新,当读取到探针数据时,利用开关组件开启待迁移微服务在目标主机房的对外数据访问。该方案确保了在源主机房和目标主机房完成了数据同步之后,才由目标主机房提供针对待迁移微服务的对外数据访问,有效地避免了因微服务在多个机房之间的迁移而出现数据冲突。
Description
技术领域
本发明涉及信息处理技术领域,具体涉及一种多机房中微服务的迁移方法、电子设备及存储介质。
背景技术
用户可以利用客户端获取服务器提供的服务,例如从服务器中下载电子书、浏览电子书评论信息等。为了便于管理服务器及确保服务器业务正常运行,运营人员会将服务器存放在机房中,机房的温度、湿度以及防静电措施等都有严格的要求。为了防止机房中的服务器挂掉而导致服务中断的情况发生,一般会在多个地方设置机房,以便在一个机房挂掉后能够通过另外的机房提供可靠服务。用户通过任一机房都能访问到所需的服务,一般情况下域名服务器会为用户分配距离其较近的机房为其提供服务。
为了确保多个机房随时能够提供可靠服务,多个机房中的数据需要进行同步,从而使多个机房中的数据保持一致。在实际应用场景中,还会出现由于流量均衡、网络状况等原因需要将服务从一个机房迁移至另一个机房的情况,然而,多个机房之间的数据同步是存在延迟的,一旦在服务完成迁移时多个机房之间并没有及时完成数据同步,那么就很可能会出现多个机房的数据不一致的情况,存在数据冲突的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的多机房中微服务的迁移方法、电子设备及存储介质。
根据本发明的一个方面,提供了一种多机房中微服务的迁移方法,其中,该方法包括:
根据针对待迁移微服务的数据迁移请求,确定待迁移微服务对应的源主机房以及目标主机房;
利用开关组件关闭待迁移微服务在源主机房的对外数据访问;
生成探针数据,将探针数据写入源主机房的数据访问日志中,并将源主机房的数据访问日志同步至目标主机房;
目标主机房读取数据访问日志进行数据库更新,当读取到探针数据时,利用开关组件开启待迁移微服务在目标主机房的对外数据访问。
根据本发明的另一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行以下操作:
根据针对待迁移微服务的数据迁移请求,确定待迁移微服务对应的源主机房以及目标主机房;
利用开关组件关闭待迁移微服务在源主机房的对外数据访问;
生成探针数据,将探针数据写入源主机房的数据访问日志中,并将源主机房的数据访问日志同步至目标主机房;
目标主机房读取数据访问日志进行数据库更新,当读取到探针数据时,利用开关组件开启待迁移微服务在目标主机房的对外数据访问。
根据本发明的又一方面,提供了一种存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行以下操作:
根据针对待迁移微服务的数据迁移请求,确定待迁移微服务对应的源主机房以及目标主机房;
利用开关组件关闭待迁移微服务在源主机房的对外数据访问;
生成探针数据,将探针数据写入源主机房的数据访问日志中,并将源主机房的数据访问日志同步至目标主机房;
目标主机房读取数据访问日志进行数据库更新,当读取到探针数据时,利用开关组件开启待迁移微服务在目标主机房的对外数据访问。
根据本发明提供的技术方案,通过增设的开关组件实现了对各个微服务在多个机房的对外数据访问的有效管理与控制,根据针对待迁移微服务的数据迁移请求,先利用开关组件关闭待迁移微服务在源主机房的对外数据访问,接着生成探针数据,将探针数据写入源主机房的数据访问日志中,并将源主机房的数据访问日志同步至目标主机房,以供目标主机房读取数据访问日志进行数据库更新,当目标主机房读取到探针数据时,说明源主机房和目标主机房之间完成了数据同步,则利用开关组件开启待迁移微服务在目标主机房的对外数据访问,从而保证了在任一时刻最多存在一个机房提供针对待迁移微服务的对外数据访问,并确保了在源主机房和目标主机房完成了数据同步之后,才由目标主机房提供针对待迁移微服务的对外数据访问,有效地避免了因微服务在多个机房之间的迁移而出现数据冲突,优化了多机房中微服务的迁移方式。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例一的一种多机房中微服务的迁移方法的流程示意图;
图2示出了根据本发明实施例二的一种多机房中微服务的迁移方法的流程示意图;
图3示出了根据本发明实施例四的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
图1示出了根据本发明实施例一的一种多机房中微服务的迁移方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤S101,根据针对待迁移微服务的数据迁移请求,确定待迁移微服务对应的源主机房以及目标主机房。
具体地,在配置中心预先为各个微服务配置主机房和从机房,微服务是指可被独立部署的、具有高内聚特性的服务,不同微服务之间还具有低耦合的特性。本领域技术人员可根据实际需要为各个微服务配置主机房和从机房,以确保机房流量均衡。假设电子书阅读服务器包含有4个微服务,这4个微服务分别为微服务A至微服务D,电子书阅读服务器对应有2个机房,分别为机房1和机房2,那么可将机房1配置为微服务A和微服务B的主机房,将机房2配置为微服务A和微服务B的从机房,另外,将机房2配置为微服务C和微服务D的主机房,将机房1配置为微服务C和微服务D的从机房。
其中,针对每个微服务,该微服务的主机房用于提供对外数据访问,在主机房提供对外数据访问的情况下,从机房并不提供对外数据访问,而是作为热备。在多个机房存在流量不均衡或者某个机房出现网络状况异常的情况时,需要将一个或多个微服务由原本的主机房迁移至其他机房,由其他机房继续提供其对外数据访问。在本发明中,将需要进行迁移的微服务称为待迁移微服务,将待迁移微服务对应的原本的主机房称为待迁移微服务对应的源主机房,将待迁移微服务需要迁移至的其他机房称为待迁移微服务对应的目标主机房。
当存在微服务迁移需求时,触发针对待迁移微服务的数据迁移请求,其中,数据迁移请求可包括:待迁移微服务的微服务标识、源主机房标识以及目标主机房标识等信息,待迁移微服务标识可以为待迁移微服务的微服务名称或者待迁移微服务的微服务ID等。那么在步骤S101中可根据数据迁移请求中的源主机房标识,确定待迁移微服务对应的源主机房,并根据数据迁移请求中的目标主机房标识,确定待迁移微服务对应的目标主机房。
步骤S102,利用开关组件关闭待迁移微服务在源主机房的对外数据访问。
为了有效地管理与控制各个微服务在多个机房的对外数据访问,本发明在现有的多机房管理技术的基础上增加了开关组件,在配置中心完成对各个微服务的主机房和从机房的配置后,针对每个微服务,利用开关组件开启该微服务在其对应的主机房的对外数据访问,关闭该微服务在其对应的从机房的对外数据访问。在步骤S101确定了待迁移微服务对应的源主机房之后,可利用开关组件关闭待迁移微服务在源主机房的对外数据访问,从而使得源主机房不会再接收到针对待迁移微服务的数据访问请求。
步骤S103,生成探针数据,将探针数据写入源主机房的数据访问日志中,并将源主机房的数据访问日志同步至目标主机房。
其中,源主机房和目标主机房之间需要完成数据同步,以确保目标主机房能够提供可靠服务。而由于受到网络链路数据传输速率以及读取数据访问日志的速率的影响,多个机房之间的数据同步会存在延迟。为了有效地识别源主机房和目标主机房之间是否完成数据同步,本发明在利用开关组件关闭待迁移微服务在源主机房的对外数据访问之后,生成探针数据,探针数据可为不具实际操作含义的数据,本领域技术人员可根据实际需要设置探针数据的具体内容,此处不做限定。
在生成了探针数据之后,将探针数据写入源主机房的数据访问日志中,并将源主机房的数据访问日志同步至目标主机房。具体地,源主机房的数据访问日志除了写入了探针数据,在探针数据的写入位置之前,还写入了源主机房针对待迁移微服务所执行的数据写入操作的操作指令,即在源主机房的数据访问日志中,探针数据的写入位置位于源主机房针对待迁移微服务所执行的所有的数据写入操作的操作指令之后,用于标识源主机房和目标主机房之间数据同步的结束。将源主机房的数据访问日志同步至目标主机房,以供目标主机房读取数据访问日志进行数据库更新。
步骤S104,目标主机房读取数据访问日志进行数据库更新,当读取到探针数据时,利用开关组件开启待迁移微服务在目标主机房的对外数据访问。
目标主机房读取源主机房的数据访问日志,通过执行数据访问日志中所记载的数据写入操作将数据写入至目标主机房的数据库中,从而实现数据库更新。当目标主机房读取到数据访问日志中的探针数据时,说明目标主机房已经完成了对源主机房针对待迁移微服务所执行的所有的数据写入操作的执行,即源主机房和目标主机房之间完成了数据同步,目标主机房已经能够提供针对待迁移微服务的可靠服务,那么利用开关组件开启待迁移微服务在目标主机房的对外数据访问,使得目标主机房提供针对待迁移微服务的对外数据访问,从而完成了待迁移微服务从源主机房向目标主机房的迁移。通过这种处理方式,能够确保在源主机房和目标主机房完成了数据同步之后,才由目标主机房提供针对待迁移微服务的对外数据访问,有效地避免了因微服务在多个机房之间的迁移而出现数据冲突。
利用本实施例提供的多机房中微服务的迁移方法,通过增设的开关组件实现了对各个微服务在多个机房的对外数据访问的有效管理与控制,根据针对待迁移微服务的数据迁移请求,先利用开关组件关闭待迁移微服务在源主机房的对外数据访问,接着生成探针数据,将探针数据写入源主机房的数据访问日志中,并将源主机房的数据访问日志同步至目标主机房,以供目标主机房读取数据访问日志进行数据库更新,当目标主机房读取到探针数据时,说明源主机房和目标主机房之间完成了数据同步,则利用开关组件开启待迁移微服务在目标主机房的对外数据访问,从而保证了在任一时刻最多存在一个机房提供针对待迁移微服务的对外数据访问,并确保了在源主机房和目标主机房完成了数据同步之后,才由目标主机房提供针对待迁移微服务的对外数据访问,有效地避免了因微服务在多个机房之间的迁移而出现数据冲突,优化了多机房中微服务的迁移方式。
实施例二
图2示出了根据本发明实施例二的一种多机房中微服务的迁移方法的流程示意图,如图2所示,该方法包括如下步骤:
步骤S201,在配置中心为各个微服务配置主机房和从机房。
在配置中心可基于机房流量均衡等原则为各个微服务配置主机房和从机房。针对每个微服务,该微服务的主机房用于提供对外数据访问,在主机房提供对外数据访问的情况下,该微服务的从机房并不提供对外数据访问,而是作为热备。其中,有些微服务之间是需要彼此调用的,例如与用户生产内容相关的多个微服务之间需要彼此调用,或者与用户账户资产相关的多个微服务之间需要彼此调用。如果为具有彼此调用关系的多个微服务配置不同的主机房,则在调用微服务的过程中,需要通过机房之间的机房专线或者公网进行调用,那么微服务调用将很有可能会受到机房专线和公网本身所存在的网络抖动等不稳定因素的影响。
为了使具有彼此调用关系的多个微服务能够实现实时调用,在本发明中,具有彼此调用关系的多个微服务被配置为同一主机房和同一从机房。具体地,将具有彼此调用关系的多个微服务划分至同一个微服务分组中,得到多个微服务分组,并为每个微服务分组配置不同的组域名,然后以微服务分组为单位,在配置中心为各个微服务分组配置主机房和从机房。通过这种配置方式,可使具有彼此调用关系的多个微服务在同一机房内就能进行彼此调用,无需跨机房调用,有效地实现了微服务间的实时调用。
步骤S202,根据针对待迁移微服务的数据迁移请求,确定待迁移微服务对应的源主机房以及目标主机房。
其中,数据迁移请求可根据配置中心中针对待迁移微服务的更新配置而触发。例如,在多个机房存在流量不均衡或者某个机房出现网络状况异常的情况时,需要更新待迁移微服务的主从机房的配置,将待迁移微服务由源主机房迁移至目标主机房,那么可根据配置中心中针对待迁移微服务的更新配置而触发数据迁移请求。另外,在配置中心中还可将多个机房中除目标主机房之外的其他机房配置为待迁移微服务对应的从机房。
其中,数据迁移请求可包括:待迁移微服务的微服务标识、源主机房标识以及目标主机房标识等信息,在步骤S202中可根据数据迁移请求中的源主机房标识以及目标主机房标识,确定待迁移微服务对应的源主机房以及目标主机房。
具体地,待迁移微服务对应的目标主机房可以是待迁移微服务原本对应的从机房,也可以不是其从机房,而是从机房之外的机房。若待迁移微服务对应的目标主机房是其从机房,由于从机房中已存储有待迁移微服务的全部数据,那么无需在源主处理机房和目标主处理机房之间进行针对待迁移微服务的数据迁移。若待迁移微服务对应的目标主机房并不是其从机房,那么目标主机房内可能并未存储有待迁移微服务的全部数据,则需要启动源主处理机房和目标主处理机房之间的针对待迁移微服务的数据迁移。
步骤S203,利用开关组件关闭待迁移微服务在源主机房的对外数据访问。
在本发明中增设了开关组件,在配置中心完成对各个微服务的主机房和从机房的配置后,生成配置信息,根据配置信息,利用开关组件开启各个微服务在其对应的主机房的对外数据访问,关闭各个微服务在其对应的从机房的对外数据访问。在步骤S203确定了待迁移微服务对应的源主机房之后,可利用开关组件关闭待迁移微服务在源主机房的对外数据访问,从而使得源主机房不会再接收到针对待迁移微服务的数据访问请求。
步骤S204,生成探针数据,将探针数据写入源主机房的数据访问日志中,并将源主机房的数据访问日志同步至目标主机房。
多个机房之间的数据同步会由于受到网络链路数据传输速率以及读取数据访问日志的速率等影响而存在延迟,为了有效地识别源主机房和目标主机房之间是否完成数据同步,本发明在利用开关组件关闭待迁移微服务在源主机房的对外数据访问之后,按照预设数据生成规则生成探针数据,探针数据为不具实际操作含义的数据,例如,所生成的探针数据的具体内容可为“#####abcde#####”。将所生成的探针数据写入源主机房的数据访问日志中,并将源主机房的数据访问日志同步至目标主机房,以供目标主机房读取数据访问日志进行数据库更新。其中,在源主机房的数据访问日志中,探针数据的写入位置是位于源主机房针对待迁移微服务所执行的所有的数据写入操作的操作指令之后,用于标识源主机房和目标主机房之间数据同步的结束。
步骤S205,目标主机房读取数据访问日志进行数据库更新,当读取到探针数据时,利用开关组件开启待迁移微服务在目标主机房的对外数据访问。
若待迁移微服务对应的目标主机房是其从机房,目标主机房可直接读取数据访问日志进行数据库更新;若待迁移微服务对应的目标主机房并不是其从机房,那么在完成数据迁移之后,目标主处理机房再读取数据访问日志进行数据库更新。具体地,目标主机房读取源主机房的数据访问日志,通过执行数据访问日志中所记载的数据写入操作将数据写入至目标主机房的数据库中,从而实现数据库更新。当目标主机房读取到数据访问日志中的探针数据时,说明目标主机房已经完成了对源主机房针对待迁移微服务所执行的所有的数据写入操作的执行,即完成了数据同步,那么接着利用开关组件开启待迁移微服务在目标主机房的对外数据访问,使得目标主机房提供针对待迁移微服务的对外数据访问,完成待迁移微服务从源主机房向目标主机房的迁移。
步骤S206,接收针对待迁移微服务的数据访问请求。
在利用开关组件开启了待迁移微服务在目标主机房的对外数据访问之后,目标主机房就可以提供针对待迁移微服务的对外数据访问。当用户或业务运维人员等想要访问待迁移微服务的数据时,可发送针对待迁移微服务的数据访问请求,其中,数据访问请求可携带有微服务标识、请求方法、请求内容、请求URL、请求的服务器地址、通信协议等信息。那么在步骤S206中接收针对待迁移微服务的数据访问请求。在接收到数据访问请求之后,会根据配置中心的配置信息将数据访问请求路由至该待迁移微服务对应的目标主机房,由目标主机房对数据访问请求进行处理。
步骤S207,若数据访问请求为数据写入请求,则执行数据写入操作将数据写入至待迁移微服务对应的目标主机房的数据库中,并将数据写入操作同步给待迁移微服务对应的从机房,以供从机房执行数据写入操作。
其中,数据访问请求可以为数据读取请求或者数据写入请求。若数据访问请求为数据读取请求,则执行数据读取操作从待迁移微服务对应的目标主机房的数据库中读取数据;若数据访问请求为数据写入请求,则执行数据写入操作将数据写入至该待迁移微服务对应的目标主机房的数据库中,通过执行数据写入操作使得目标主机房的数据库中的数据得到更新,在此情况下需要及时地进行目标主机房和从机房之间的数据同步,具体地,可将数据写入操作同步给待迁移微服务对应的从机房,以供从机房执行数据写入操作,通过执行数据写入操作将数据写入至该待迁移微服务对应的从机房的数据库中,从而实现了从主机房至从机房的单方向的数据同步,有效地解决了在多机房场景下存在的数据冲突的问题。
利用本实施例提供的多机房中微服务的迁移方法,通过在配置中心为各个微服务配置主机房和从机房,实现了基于微服务的主从机房的精准配置,并且为具有彼此调用关系的多个微服务配置同一主机房和同一从机房,确保了具有彼此调用关系的多个微服务能够实时调用,不受机房专线和公网所存在的网络抖动等不稳定因素的影响;当存在微服务迁移需求时,利用增设的开关组件关闭待迁移微服务在源主机房的对外数据访问,并通过写入至源主机房的数据访问日志中的探针数据标识源主机房和目标主机房之间数据同步的结束,当目标主机房读取到探针数据时,再利用开关组件开启待迁移微服务在目标主机房的对外数据访问,从而保证源主机房和目标主机房数据同步完成后,才由目标主机房提供针对待迁移微服务的对外数据访问,有效地避免了因微服务在多个机房之间的迁移而出现数据冲突;另外,还实现了从主机房至从机房的单方向的数据同步,有效地避免了在多机房场景下数据出现冲突。
实施例三
本发明实施例三提供了一种非易失性存储介质,存储介质存储有至少一可执行指令,该可执行指令可执行上述任意方法实施例中的多机房中微服务的迁移方法。
可执行指令具体可以用于使得处理器执行以下操作:根据针对待迁移微服务的数据迁移请求,确定待迁移微服务对应的源主机房以及目标主机房;利用开关组件关闭待迁移微服务在源主机房的对外数据访问;生成探针数据,将探针数据写入源主机房的数据访问日志中,并将源主机房的数据访问日志同步至目标主机房;目标主机房读取数据访问日志进行数据库更新,当读取到探针数据时,利用开关组件开启待迁移微服务在目标主机房的对外数据访问。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:在配置中心为各个微服务配置主机房和从机房;其中,具有彼此调用关系的多个微服务被配置为同一主机房和同一从机房;数据迁移请求根据配置中心中针对待迁移微服务的更新配置而触发。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:将多个机房中除目标主机房之外的其他机房配置为待迁移微服务对应的从机房。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:接收针对待迁移微服务的数据访问请求;若数据访问请求为数据写入请求,则执行数据写入操作将数据写入至待迁移微服务对应的目标主机房的数据库中,并将数据写入操作同步给待迁移微服务对应的从机房,以供从机房执行数据写入操作。
在一种可选的实施方式中,数据迁移请求包括:待迁移微服务的微服务标识、源主机房标识以及目标主机房标识。
实施例四
图3示出了根据本发明实施例四的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图3所示,该电子设备可以包括:处理器(processor)302、通信接口(Communications Interface)304、存储器(memory)306、以及通信总线308。
其中:
处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。
通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器302,用于执行程序310,具体可以执行上述多机房中微服务的迁移方法实施例中的相关步骤。
具体地,程序310可以包括程序代码,该程序代码包括计算机操作指令。
处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序310具体可以用于使得处理器302执行以下操作:根据针对待迁移微服务的数据迁移请求,确定待迁移微服务对应的源主机房以及目标主机房;利用开关组件关闭待迁移微服务在源主机房的对外数据访问;生成探针数据,将探针数据写入源主机房的数据访问日志中,并将源主机房的数据访问日志同步至目标主机房;目标主机房读取数据访问日志进行数据库更新,当读取到探针数据时,利用开关组件开启待迁移微服务在目标主机房的对外数据访问。
在一种可选的实施方式中,程序310进一步使得处理器302执行以下操作:在配置中心为各个微服务配置主机房和从机房;其中,具有彼此调用关系的多个微服务被配置为同一主机房和同一从机房;数据迁移请求根据配置中心中针对待迁移微服务的更新配置而触发。
在一种可选的实施方式中,程序310进一步使得处理器302执行以下操作:将多个机房中除目标主机房之外的其他机房配置为待迁移微服务对应的从机房。
在一种可选的实施方式中,程序310进一步使得处理器302执行以下操作:接收针对待迁移微服务的数据访问请求;若数据访问请求为数据写入请求,则执行数据写入操作将数据写入至待迁移微服务对应的目标主机房的数据库中,并将数据写入操作同步给待迁移微服务对应的从机房,以供从机房执行数据写入操作。
在一种可选的实施方式中,数据迁移请求包括:待迁移微服务的微服务标识、源主机房标识以及目标主机房标识。
程序310中各步骤的具体实现可以参见上述多机房中微服务的迁移实施例中的相应步骤对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例提供的方案,保证了在任一时刻最多存在一个机房提供针对待迁移微服务的对外数据访问,并确保了在源主机房和目标主机房完成了数据同步之后,才由目标主机房提供针对待迁移微服务的对外数据访问,有效地避免了因微服务在多个机房之间的迁移而出现数据冲突,优化了多机房中微服务的迁移方式。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (15)
1.一种多机房中微服务的迁移方法,其中,所述方法包括:
根据针对待迁移微服务的数据迁移请求,确定所述待迁移微服务对应的源主机房以及目标主机房;
利用开关组件关闭所述待迁移微服务在源主机房的对外数据访问;
生成探针数据,将探针数据写入所述源主机房的数据访问日志中,并将所述源主机房的数据访问日志同步至所述目标主机房;
所述目标主机房读取所述数据访问日志进行数据库更新,当读取到所述探针数据时,利用开关组件开启所述待迁移微服务在所述目标主机房的对外数据访问。
2.根据权利要求1所述的方法,在所述根据针对待迁移微服务的数据迁移请求,确定所述待迁移微服务对应的源主机房以及目标主机房之前,所述方法还包括:
在配置中心为各个微服务配置主机房和从机房;其中,具有彼此调用关系的多个微服务被配置为同一主机房和同一从机房;所述数据迁移请求根据所述配置中心中针对所述待迁移微服务的更新配置而触发。
3.根据权利要求1所述的方法,所述方法还包括:
将多个机房中除所述目标主机房之外的其他机房配置为所述待迁移微服务对应的从机房。
4.根据权利要求1所述的方法,在所述利用开关组件开启所述待迁移微服务在所述目标主机房的对外数据访问之后,所述方法还包括:
接收针对所述待迁移微服务的数据访问请求;
若所述数据访问请求为数据写入请求,则执行数据写入操作将数据写入至所述待迁移微服务对应的目标主机房的数据库中,并将所述数据写入操作同步给所述待迁移微服务对应的从机房,以供所述从机房执行所述数据写入操作。
5.根据权利要求1-4任一项所述的方法,所述数据迁移请求包括:待迁移微服务的微服务标识、源主机房标识以及目标主机房标识。
6.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下操作:
根据针对待迁移微服务的数据迁移请求,确定所述待迁移微服务对应的源主机房以及目标主机房;
利用开关组件关闭所述待迁移微服务在源主机房的对外数据访问;
生成探针数据,将探针数据写入所述源主机房的数据访问日志中,并将所述源主机房的数据访问日志同步至所述目标主机房;
所述目标主机房读取所述数据访问日志进行数据库更新,当读取到所述探针数据时,利用开关组件开启所述待迁移微服务在所述目标主机房的对外数据访问。
7.根据权利要求6所述的电子设备,所述可执行指令进一步使所述处理器执行以下操作:
在配置中心为各个微服务配置主机房和从机房;其中,具有彼此调用关系的多个微服务被配置为同一主机房和同一从机房;所述数据迁移请求根据所述配置中心中针对所述待迁移微服务的更新配置而触发。
8.根据权利要求6所述的电子设备,所述可执行指令进一步使所述处理器执行以下操作:
将多个机房中除所述目标主机房之外的其他机房配置为所述待迁移微服务对应的从机房。
9.根据权利要求6所述的电子设备,所述可执行指令进一步使所述处理器执行以下操作:
接收针对所述待迁移微服务的数据访问请求;
若所述数据访问请求为数据写入请求,则执行数据写入操作将数据写入至所述待迁移微服务对应的目标主机房的数据库中,并将所述数据写入操作同步给所述待迁移微服务对应的从机房,以供所述从机房执行所述数据写入操作。
10.根据权利要求6-9任一项所述的电子设备,所述数据迁移请求包括:待迁移微服务的微服务标识、源主机房标识以及目标主机房标识。
11.一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行以下操作:
根据针对待迁移微服务的数据迁移请求,确定所述待迁移微服务对应的源主机房以及目标主机房;
利用开关组件关闭所述待迁移微服务在源主机房的对外数据访问;
生成探针数据,将探针数据写入所述源主机房的数据访问日志中,并将所述源主机房的数据访问日志同步至所述目标主机房;
所述目标主机房读取所述数据访问日志进行数据库更新,当读取到所述探针数据时,利用开关组件开启所述待迁移微服务在所述目标主机房的对外数据访问。
12.根据权利要求11所述的存储介质,所述可执行指令进一步使所述处理器执行以下操作:
在配置中心为各个微服务配置主机房和从机房;其中,具有彼此调用关系的多个微服务被配置为同一主机房和同一从机房;所述数据迁移请求根据所述配置中心中针对所述待迁移微服务的更新配置而触发。
13.根据权利要求11所述的存储介质,所述可执行指令进一步使所述处理器执行以下操作:
将多个机房中除所述目标主机房之外的其他机房配置为所述待迁移微服务对应的从机房。
14.根据权利要求11所述的存储介质,所述可执行指令进一步使所述处理器执行以下操作:
接收针对所述待迁移微服务的数据访问请求;
若所述数据访问请求为数据写入请求,则执行数据写入操作将数据写入至所述待迁移微服务对应的目标主机房的数据库中,并将所述数据写入操作同步给所述待迁移微服务对应的从机房,以供所述从机房执行所述数据写入操作。
15.根据权利要求11-14任一项所述的存储介质,所述数据迁移请求包括:待迁移微服务的微服务标识、源主机房标识以及目标主机房标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910928042.4A CN110673941B (zh) | 2019-09-27 | 2019-09-27 | 多机房中微服务的迁移方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910928042.4A CN110673941B (zh) | 2019-09-27 | 2019-09-27 | 多机房中微服务的迁移方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110673941A CN110673941A (zh) | 2020-01-10 |
CN110673941B true CN110673941B (zh) | 2020-07-17 |
Family
ID=69079694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910928042.4A Active CN110673941B (zh) | 2019-09-27 | 2019-09-27 | 多机房中微服务的迁移方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110673941B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021212493A1 (zh) * | 2020-04-24 | 2021-10-28 | 深圳市欢太科技有限公司 | 数据同步方法、装置、数据存储***及计算机可读介质 |
CN111800462B (zh) * | 2020-05-28 | 2024-04-05 | 中国平安财产保险股份有限公司 | 微服务实例处理方法、装置、计算机设备及存储介质 |
CN112068943B (zh) * | 2020-09-08 | 2022-11-25 | 山东省计算中心(国家超级计算济南中心) | 一种基于复杂异构环境的微服务调度方法及其实现*** |
CN112131056A (zh) * | 2020-09-17 | 2020-12-25 | 掌阅科技股份有限公司 | 多机房服务切换的控制方法、***、计算设备及存储介质 |
CN112632032B (zh) * | 2020-12-18 | 2022-12-27 | 华人运通(上海)云计算科技有限公司 | 一种数据迁移方法、装置、存储介质及终端设备 |
CN112817713B (zh) * | 2021-01-27 | 2023-10-13 | 广州虎牙科技有限公司 | 作业调度方法、装置和电子设备 |
CN112817567B (zh) * | 2021-01-28 | 2022-07-15 | 中国科学技术大学 | 一种微服务应用的openwhisk无服务框架迁移方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794155A (zh) * | 2015-03-12 | 2015-07-22 | 北京奇虎科技有限公司 | 数据加载的方法、装置及*** |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980519B (zh) * | 2015-06-29 | 2019-03-05 | 北京奇虎科技有限公司 | 多机房存储*** |
CN105653630B (zh) * | 2015-12-25 | 2019-12-24 | 北京奇虎科技有限公司 | 分布式数据库的数据迁移方法与装置 |
CN107872334B (zh) * | 2016-09-23 | 2022-05-20 | 中兴通讯股份有限公司 | 一种微服务架构***中灰度升级的方法及装置 |
CN106656604A (zh) * | 2016-12-23 | 2017-05-10 | 郑州云海信息技术有限公司 | 微服务请求管理方法、微服务控制器及高并发微服务架构 |
CN106533805B (zh) * | 2016-12-23 | 2020-02-04 | 苏州浪潮智能科技有限公司 | 一种微服务请求处理方法、微服务控制器及微服务架构 |
US10690010B2 (en) * | 2018-03-16 | 2020-06-23 | Uop Llc | Steam reboiler with turbine |
CN108848092B (zh) * | 2018-06-20 | 2021-02-26 | 中国联合网络通信集团有限公司 | 基于调用链的微服务灰度发布的处理方法及装置 |
CN109324942B (zh) * | 2018-08-07 | 2022-06-07 | 顺丰科技有限公司 | 微服务的双活处理方法、装置及***、设备、存储介质 |
CN109933632B (zh) * | 2019-04-04 | 2021-04-27 | 杭州数梦工场科技有限公司 | 一种数据库的数据迁移方法、装置及设备 |
-
2019
- 2019-09-27 CN CN201910928042.4A patent/CN110673941B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794155A (zh) * | 2015-03-12 | 2015-07-22 | 北京奇虎科技有限公司 | 数据加载的方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN110673941A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110673941B (zh) | 多机房中微服务的迁移方法、电子设备及存储介质 | |
CN110633175B (zh) | 基于微服务的多机房数据处理方法、电子设备及存储介质 | |
CN108234641B (zh) | 基于分布式一致性协议实现的数据读写方法及装置 | |
US11044230B2 (en) | Dynamically opening ports for trusted application processes hosted in containers | |
CN104216793B (zh) | 应用程序备份、恢复的方法及设备 | |
CN109376197B (zh) | 一种数据同步方法、服务器及计算机存储介质 | |
CN107666493B (zh) | 一种数据库配置方法及其设备 | |
US11336588B2 (en) | Metadata driven static determination of controller availability | |
CN110740057B (zh) | 一种业务部署方法以及区块链平台 | |
JP2009237826A (ja) | ストレージシステム及びそのボリューム管理方法 | |
CN110520844A (zh) | 云管理平台、虚拟机管理方法及其*** | |
CN110855488B (zh) | 一种虚拟机接入方法及装置 | |
CN112202853B (zh) | 数据同步方法、***、计算机设备和存储介质 | |
CN112035216A (zh) | 一种Kubernetes集群网络和OpenStack网络的打通方法 | |
CN105095103A (zh) | 用于云环境下的存储设备管理方法和装置 | |
CN107920131A (zh) | 一种hdfs存储***的元数据管理方法及装置 | |
WO2024109540A1 (zh) | 芯片电路、处理器的启动方法及服务器 | |
CN113885797A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN103019847A (zh) | 对虚拟机数据进行迁移的方法及*** | |
CN105162833A (zh) | 应用于无盘工作站的客户机管理***及方法 | |
JP7091457B2 (ja) | 遠隔コピー操作中にバス・インターフェースを介してストレージ・コントローラに書き込まれるデータの管理 | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
CN105100136A (zh) | 用于访问存储集群中的逻辑存储的方法和装置 | |
CN109656674B (zh) | 一种计算机设备、虚拟化芯片及数据传输方法 | |
WO2015035891A1 (zh) | 补丁方法、设备及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |