CN109412835A - 分布式系统及数据管理方法和装置、存储介质、计算设备 - Google Patents
分布式系统及数据管理方法和装置、存储介质、计算设备 Download PDFInfo
- Publication number
- CN109412835A CN109412835A CN201811066550.8A CN201811066550A CN109412835A CN 109412835 A CN109412835 A CN 109412835A CN 201811066550 A CN201811066550 A CN 201811066550A CN 109412835 A CN109412835 A CN 109412835A
- Authority
- CN
- China
- Prior art keywords
- data
- change
- service
- service instance
- request
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5054—Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
公开了一种分布式系统及数据管理方法和装置、存储介质、计算设备。该分布式系统包括多个服务实例。响应于针对第一列表中各服务实例的数据变更请求,向第二列表中各服务实例发送数据变更任务,第二列表包括第一列表中尚未达到数据变更目标的服务实例。查询各服务实例的数据状态。响应于各服务实例的数据状态变化,更新第二列表,直到第二列表为空。由此,可以便利地实现数据的变更目标。另外,响应于用户的数据升级请求,发出第一数据变更请求,变更目标为当前数据加升级目标数据。响应于第一数据变更请求的变更目标已达到,发出第二数据变更请求,变更目标为升级目标数据。由此,可以便利地实现用户的数据升级目标。
Description
技术领域
本公开涉及具有多个服务实例的分布式系统,特别涉及分布式系统的数据管理方案。
背景技术
大型互联网业务往往需要大量机器(服务器),形成分布式系统。分布式系统可以包括多个服务实例。服务实例,也可以称为“服务器实例”,是服务器的一个抽象。一个服务器上可以装多个服务实例。
同时,大型互联网业务往往还包含很多功能模块,这些功能模块相互访问、依赖,组成一个完整的业务逻辑。
在分布式系统中,名字服务解决了功能模块之间如何相互发现的问题,调度系统则解决了在海量的机器上快速、正确地部署和升级这些功能模块的问题。
往往功能模块的部署和升级不仅仅包括对相关程序本身的部署和升级,还包括对程序所需要的配置文件和数据的部署和升级。因此,数据托管服务也是调度系统中重要的组成部分。
在实际部署中,一个功能模块往往涉及多个服务实例。这些服务实例是完全对等的,即一个服务实例完全可以替代另一个服务实例,这些服务实例所依赖的数据也是相同的。
相应地,完整的数据托管服务一般包括以下三方面:
1)数据版本管理;
2)数据的分发部署;
3)无效数据的清理回收。
目前,业界常见的数据管理方式一般如下:
1)人工管理数据版本,即人工管理程序版本与数据版本之间的对应关系。例如,P1版本的程序使用D1版本的数据,P2版本的程序使用D2版本的数据;
2)使用数据分发系统分发数据,到指定IP地址的机器的指定位置;
3)对于不同模块,人工编写不同策略的数据清理删除脚本,定时清理无效数据。
在实践中,发现上述方法存在以下不足:
1)随着模块数量的提升,程序版本与数据版本之间的对应关系的人工管理成本过高;
2)在分布式调度系统中,模块的服务实例数量巨大,并且随着服务实例的宕机和容灾,IP地址可能会发生变化,IP地址列表的人工管理成本过高;
3)人工根据不同模块制定不同的数据清理策略,定时清理无效数据的方式,重复工作量大(需要编写不同的脚本),且清理时效性比较差(定时扫描)。
因此,对于分布式系统,仍然需要一种更加便利的数据管理方案。
发明内容
本公开要解决的一个技术问题是提供一种分布式系统的数据管理方案,其能够实现多个服务实例上数据的自动更新。
根据本公开的第一个方面,提供了一种分布式系统的数据管理方法,该分布式系统包括多个服务实例,该方法包括:响应于针对第一服务实例列表中各服务实例的数据变更请求,向第二服务实例列表中各服务实例发送对应于数据变更请求的数据变更任务,第二服务实例列表包括第一服务实例列表中数据状态尚未达到数据变更请求的变更目标的服务实例;查询各服务实例的数据状态;以及响应于各服务实例的数据状态变化,更新第二服务实例列表,直到第二服务实例列表为空。
可选地,数据变更请求包括响应于用户的数据升级请求而发出的第一数据变更请求,数据升级请求为将指定功能模块所依赖的数据从第一数据升级为第二数据的请求,第一服务实例列表为涉及指定功能模块的服务实例的列表,第一数据变更请求的变更目标为将服务实例上用于指定功能模块的数据变更为包含第一数据和第二数据。
可选地,数据变更任务包括对应于第一数据变更请求的第一数据变更任务,其中,如果服务实例上当前用于指定功能模块的数据为第一数据,则下载第二数据到该服务实例;如果服务实例上当前用于指定功能模块的数据为第一数据之前版本的数据,则下载第一数据和第二数据到该服务实例。
可选地,数据变更请求还包括响应于第一服务实例列表中所有服务实例的数据状态均已达到第一数据变更请求的变更目标而发出的第二数据变更请求,第二数据变更请求的变更目标为删除服务实例上的第一数据。
可选地,数据变更任务包括对应于第二数据变更请求的第二数据变更任务,其中,根据预设策略确定当前删除第一数据,还是保留第一数据直到第二数据升级为第三数据之后再删除第一数据。
可选地,该方法还可以包括:响应于用户的数据升级请求,发出第一数据变更请求;以及响应于第一数据变更请求的变更目标已达到,发出第二数据变更请求。
可选地,该方法还可以包括:在服务实例上执行数据变更任务,其中,根据服务实例上的当前数据状态和数据变更任务的数据变更目标,确定数据变更方案。
可选地,在第一服务实例列表和第二服务实例列表中,使用服务实例的IP地址来表示服务实例。
根据本公开的第二个方面,提供了一种分布式系统的数据管理装置,分布式系统包括多个服务实例,该方法包括:任务发布装置,用于响应于针对第一服务实例列表中各服务实例的数据变更请求,向第二服务实例列表中各服务实例发送对应于数据变更请求的数据变更任务,第二服务实例列表包括第一服务实例列表中数据状态尚未达到数据变更请求的变更目标的服务实例;状态查询装置,用于查询各服务实例的数据状态;以及列表更新装置,用于响应于各服务实例的数据状态变化,更新第二服务实例列表,直到第二服务实例列表为空。
可选地,数据变更请求包括第一数据变更请求和第二数据变更请求,该数据管理装置还可以包括:第一请求发起装置,用于响应于用户的数据升级请求,发出第一数据变更请求,数据升级请求为将指定功能模块所依赖的数据从第一数据升级为第二数据的请求,第一服务实例列表为涉及指定功能模块的服务实例的列表,第一数据变更请求的变更目标为将服务实例上用于指定功能模块的数据变更为包含第一数据和第二数据;以及第二请求发起装置,用于响应于第一数据变更请求的变更目标已达到,发出第二数据变更请求,第二数据变更请求的变更目标为删除服务实例上的第一数据。
可选地,该数据管理装置还可以包括:任务执行装置,布置在服务实例上,用于执行数据变更任务,其中,根据服务实例上的当前数据状态和数据变更任务的数据变更目标,确定数据变更方案。
根据本公开的第三个方面,提供了一种具有多个服务实例的分布式系统,包括:分别布置在多个服务实例上的多个工作模块;与多个工作模块通信的管理模块;以及与管理模块通信的调度模块,其中,调度模块针对第一服务实例列表中各服务实例发起于数据变更请求,管理模块响应于数据变更请求,向第二服务实例列表中各服务实例上的工作模块发送对应于数据变更请求的数据变更任务,第二服务实例列表包括第一服务实例列表中数据状态尚未达到数据变更请求的变更目标的服务实例,工作模块执行数据变更任务,并向管理模块上报其所在的服务实例的数据状态,管理模块查询各服务实例的数据状态,并且响应于各服务实例的数据状态变化,更新第二服务实例列表,直到第二服务实例列表为空。
可选地,数据变更请求包括第一数据变更请求和第二数据变更请求,调度模块响应于用户的数据升级请求,发出第一数据变更请求,数据升级请求为将指定功能模块所依赖的数据从第一数据升级为第二数据的请求,第一服务实例列表为涉及指定功能模块的服务实例的列表,第一数据变更请求的变更目标为将服务实例上用于指定功能模块的数据变更为包含第一数据和第二数据;并且调度模块响应于第一数据变更请求的变更目标已达到,发出第二数据变更请求,第二数据变更请求的变更目标为删除服务实例上的第一数据。
可选地,由工作模块执行数据变更任务,其中,根据服务实例上的当前数据状态和数据变更任务的数据变更目标,确定数据变更方案。
根据本公开的第四个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如根据本公开第一个方面的方法。
根据本公开的第一个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如根据本公开第一个方面的方法。
通过使用根据本公开的分布式系统数据管理方案,开发运维人员可以在调度系统中托管功能模块所依赖的数据,由数据托管服务自动控制数据分发和清理,大大节省了人力并提高了业务迭代、升级时的易用性和健壮性。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是本公开的分布式系统的示意性框图。
图2是一个实施例中调度模块100的示意性框图。
图3是一个实施例中管理模块200的示意性框图。
图4是一个实施例中工作模块300的示意性框图。
图5是根据本公开的数据管理方案中数据变更方法的示意性流程图。
图6是根据本公开的数据升级管理方法的总的调度方法的示意性流程图。
图7示出了根据本发明一实施例可用于实现上述数据管理方法的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本公开提出了一种在分布式调度系统上面向目标的数据托管服务。即,基于数据更新目标来发起请求,执行任务,自动管理数据下载、删除、更新的完整生命周期。
【分布式系统】
首先简要描述一下可用于实现本公开的数据管理方案的分布式系统。
图1是本公开的分布式系统的示意性框图。
如图1所示,分布式系统可以包括多个服务实例10。分布式系统上可以运行一个或多个功能模块。每个功能模块都可能涉及不止一个服务实例,即可以通过不止一个服务实例中任一个来完成该功能模块的业务。同一个功能模块涉及的不同服务实例之间的相关数据需要保持一致,同步更新。
如图1所示,根据本公开的分布式系统可以包括三种模块,以实现其数据管理,即调度模块(scheduler)100、管理模块(master)200、工作模块300(agent)。
调度模块100可以用来负责管理各个功能模块对应的程序版本、配置版本、数据版本、服务实例的IP地址列表等。
管理模块200可以用来负责管理工作模块300的存活,给工作模块300下发数据目标任务,查询汇总工作模块300托管的数据状态.
调度模块100和管理模块200可以设置在同一个机器上,例如同一个服务器,或同一个服务实例上,也可以设置在不同的机器上。
多个工作模块300分别部署在上述多个服务实例10上,接受管理模块200下发的数据目标任务,监控不同功能模块的数据状态,执行新数据的下载以及无效数据的清理。
调度模块100与管理模块200通信。调度模块100可以向管理模块200发起数据变更请求,指出本次数据变更的目的,即指令将某些服务实例上的数据变更为某种状态。
管理模块200与多个工作模块300分别通信。管理模块200可以根据调度模块100发出的数据变更请求,向相应的服务实例10上的工作模块300发送相应的数据变更任务,并监控各服务实例10上的数据状态,直到所有相关服务实例10都达到本次数据变更请求的变更目的。
图2是一个实施例中调度模块100的示意性框图。
如图2所示,调度模块100可以包括第一请求发起装置120和第二请求发起装置140。
第一请求发起装置120响应于用户发出的将指定功能模块所依赖的数据从第一数据(可以视为当前数据,例如版本D1)升级为第二数据(可以视为升级目标数据,例如版本D2)的数据升级请求,向管理模块200发出针对第一服务实例列表(也可以称为“第一列表”)中各服务实例的第一数据变更请求。第一服务实例列表为涉及上述指定功能模块的服务实例的列表。
第一数据变更请求的变更目标为将服务实例上用于上述指定功能模块的数据变更为包含第一数据D1和第二数据D2。
第二请求发起装置140响应于第一数据变更请求的变更目标已经达到,向管理模块200发出第二数据变更请求。
第二数据变更请求的变更目标为删除服务实例上的第一数据D1。
如上所述,管理模块200响应于来自调度模块100的数据变更请求,向相应服务实例10上的工作模块300发送数据变更任务。数据变更请求可以是上述第一数据变更请求,也可以是上述第二数据变更请求。更具体地说,对于一次数据升级操作,先发出第一数据变更请求,在发出第二数据变更请求。管理模块200相应进行操作。
图3是一个实施例中管理模块200的示意性框图。
如图3所示,管理模块200可以包括任务发布装置220、状态查询装置240、列表更新装置260。
任务发布装置220响应于针对第一服务实例列表中各服务实例的数据变更请求,向第二服务实例列表(也可以称为“第二列表”)中各服务实例发送对应于该数据变更请求的数据变更任务。第二服务实例列表包括第一服务实例列表中数据状态尚未达到本次数据变更请求的变更目标的服务实例。
状态查询装置240查询各服务实例的数据状态。
列表更新装置260响应于各服务实例的数据状态变化,更新第二服务实例列表,直到第二服务实例列表为空。
管理模块200发送到相应服务实例10的数据变更任务可以由该服务实例10上的工作模块300来负责处理。
图4是一个实施例中工作模块300的示意性框图。
如图4所示,工作模块300可以包括任务执行装置320。
任务执行装置320执行管理模块200发送的数据变更任务。
在执行数据变更任务之前,任务执行装置320可以根据所述服务实例上的当前数据状态和数据变更任务的数据变更目标,确定数据变更方案。
上面参考图2至图4描述了各子装置分别布置在调度模块100、管理模块200、工作模块300中的情形。应当理解。本公开的数据管理方法也可以通过一种数据管理装置来实现。该数据管理装置可以包括图2至图4中所示出的各个子装置,而不一定需要将它们分别整合在调度模块100、管理模块200、工作模块300中。
下文中,将参考图5和图6,进一步描述根据本公开的数据管理方法。
根据本公开的数据管理方法可以在图1所述的分布式系统中,例如通过调度模块100、管理模块200和工作模块300,或者通过上述数据管理装置来实施。下文中描述的一些细节同样适用于上文参考图1至图4的描述内容.
首先,参考图5描述本公开提出的数据管理方法中,面向设定目标的数据变更方法。
图5是根据本公开的数据管理方案中数据变更方法的示意性流程图。
如图5所示,在步骤S520,例如可以由上述管理模块200,响应于针对第一服务实例列表L1中各服务实例10的数据变更请求,向第二服务实例列表L2中各服务实例发送对应于数据变更请求的数据变更任务,第二服务实例列表L2包括第一服务实例列表L1中数据状态尚未达到数据变更请求的变更目标的服务实例10。
在第一服务实例列表L1和第二服务实例列表L2中,可以使用服务实例10的IP地址来表示该服务实例10。
在步骤S540,例如可以由上述工作模块300,在第二服务实例列表L2中包括的服务实例10上执行数据变更任务。
这里,例如可以通过工作模块300,根据服务实例10上的当前数据状态和数据变更任务的数据变更目标,确定数据变更方案。
在步骤S560,例如可以由上述管理模块200通过与上述工作模块300的通信,查询各服务实例10的数据状态。
在步骤S580,例如可以由上述管理模块200,响应于各服务实例10的数据状态变化,更新第二服务实例列表L2,即保留尚未达到变更目标的服务实例,删除已经达到变更目标的服务实例,直到第二服务实例列表L2为空。
由此,在数据变更请求中设定了数据变更目标的请求下,可以较为便利地实现面向该数据变更目标的数据变更。
下面参考图6所示的总的调度方法,结合图5,详细描述根据本公开采用图5所示数据变更方案的数据升级管理方法。
图6是根据本公开的数据升级管理方法的总的调度方法的示意性流程图。
如上所述,数据变更请求可以包括第一数据变更请求和第二数据变更请求。
用户,例如开发人员或运维人员,向调度模块100发起数据升级请求,请求将指定功能模块M所依赖的数据从第一数据(当前数据,例如版本D1)升级到第二数据(升级目标数据,例如版本D2)。
在步骤S620,例如可以由调度模块100,响应于用户的数据升级请求,发出第一数据变更请求。
这里,调度模块100可以确定受本次数据升级影响的服务实例10(涉及指定功能模块M的服务实例10)的列表,即第一服务实例列表L1。
调度模块100可以向管理模块200发起第一数据变更请求,请求将第一服务实例列表L1中各服务实例10的数据状态变更为包含第一数据D1和第二数据D2,即数据变更目标为D1+D2。换言之,第一数据变更请求的变更目标为将L1中各服务实例10上用于指定功能模块的数据变更为包含第一数据和第二数据。
管理模块200和工作模块300可以通过如图5所示的数据变更方法,实现该数据变更目标。
具体说来,响应于第一数据变更请求,管理模块200向第二服务实例列表L2中各服务实例10上的工作模块300发送第一数据变更任务。
第二服务实例列表L2的工作模块收到第一数据变更任务,根据当前数据状态确定数据变更方案,即确定需要下载的数据,并上报自身数据状态到管理模块200。
如果服务实例10上当前用于指定功能模块的数据为第一数据D1,则确定该服务实例10上的数据变更方案为下载第二数据到该服务实例10。
如果服务实例10上当前用于指定功能模块的数据为第一数据D1之前版本的数据D0,即先前还没有下载第一数据D1,则确定该服务实例10上的数据变更方案为下载第一数据D1和第二数据D2到该服务实例10。
管理模块200查询各服务实例10的数据状态,更新第二服务实例列表L2,直到第二服务实例列表L2为空。当第二服务实例列表L2为空时,表明第一服务实例列表L1中所有服务实例10的数据状态都已达到第一数据变更请求的变更目标。
调度模块100也可以定时向管理模块查询第一服务实例列表L1的数据状态。当第一服务实例列表L1的状态全部为D1+D2,换言之,都已达到第一数据变更请求的数据变更目标,第二服务实例列表L2为空,则向管理模块200发起第二数据变更请求,请求将第一服务实例列表L1中各服务实例10的数据状态变更为包含第二数据,即数据变更目标为D2,换言之,删除列表L1中各服务实例10上的第一数据D1。
管理模块200和工作模块300仍然可以通过如图5所示的数据变更方法,实现该数据变更目标。
具体说来,响应于第二数据变更请求,管理模块200向第二服务实例列表L2中各服务实例10上的工作模块300发送第二数据变更任务。
第二服务实例列表L2的工作模块300收到第二数据变更任务,根据预设策略确定数据变更方案,即确定是当前就删除第一数据D1,还是保留第一数据D1直到第二数据D2升级为第三数据D3之后,再删除第一数据D1。
这里的预设策略例如可以是预先配置的过期数据保留策略。该过期数据保留策略可以用一个标记N来表示。例如,如果N=0,则表示马上删除第一数据D1。如果N=1,则表示先保留第一数据D1,直到数据目标变为第三数据D3,过期数据有第一数据D1和第二数据D2时,才删除第一数据D1而保留第二数据D2。
至此,已详细描述了根据本公开的分布式系统及其数据管理方法和装置。通过使用该数据管理方案,可以便利地实现多个服务实例上数据的统一管理和配置。
图7示出了根据本发明一实施例可用于实现上述数据管理方法的计算设备的结构示意图。
参见图7,计算设备700包括存储器710和处理器720。
处理器720可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器720可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器720可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器710可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器720或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器710可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器710可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器710上存储有可执行代码,当可执行代码被处理器720处理时,可以使处理器720执行上文述及的数据管理方法。
上文中已经参考附图详细描述了根据本发明的数据管理方法。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (16)
1.一种分布式系统的数据管理方法,所述分布式系统包括多个服务实例,该方法包括:
响应于针对第一服务实例列表中各服务实例的数据变更请求,向第二服务实例列表中各服务实例发送对应于所述数据变更请求的数据变更任务,所述第二服务实例列表包括所述第一服务实例列表中数据状态尚未达到所述数据变更请求的变更目标的服务实例;
查询各服务实例的数据状态;以及
响应于各服务实例的数据状态变化,更新所述第二服务实例列表,直到所述第二服务实例列表为空。
2.根据权利要求1所述的方法,其中,
所述数据变更请求包括响应于用户的数据升级请求而发出的第一数据变更请求,
所述数据升级请求为将指定功能模块所依赖的数据从第一数据升级为第二数据的请求,
所述第一服务实例列表为涉及所述指定功能模块的服务实例的列表,
所述第一数据变更请求的变更目标为将服务实例上用于所述指定功能模块的数据变更为包含所述第一数据和所述第二数据。
3.根据权利要求2所述的方法,其中,所述数据变更任务包括对应于所述第一数据变更请求的第一数据变更任务,其中,
如果服务实例上当前用于所述指定功能模块的数据为所述第一数据,则下载所述第二数据到该服务实例;
如果服务实例上当前用于所述指定功能模块的数据为所述第一数据之前版本的数据,则下载所述第一数据和所述第二数据到该服务实例。
4.根据权利要求2所述的方法,其中,
所述数据变更请求还包括响应于所述第一服务实例列表中所有服务实例的数据状态均已达到所述第一数据变更请求的变更目标而发出的第二数据变更请求,
所述第二数据变更请求的变更目标为删除服务实例上的所述第一数据。
5.根据权利要求4所述的方法,其中,所述数据变更任务包括对应于所述第二数据变更请求的第二数据变更任务,其中,
根据预设策略确定当前删除所述第一数据,还是保留所述第一数据直到所述第二数据升级为第三数据之后再删除所述第一数据。
6.根据权利要求4所述的方法,还包括:
响应于所述用户的数据升级请求,发出所述第一数据变更请求;以及
响应于所述第一数据变更请求的变更目标已达到,发出所述第二数据变更请求。
7.根据权利要求1所述的方法,还包括:
在所述服务实例上执行所述数据变更任务,其中,根据所述服务实例上的当前数据状态和所述数据变更任务的数据变更目标,确定数据变更方案。
8.根据权利要求1-7中任何一项所述的方法,其中,
在所述第一服务实例列表和所述第二服务实例列表中,使用服务实例的IP地址来表示所述服务实例。
9.一种分布式系统的数据管理装置,所述分布式系统包括多个服务实例,该方法包括:
任务发布装置,用于响应于针对第一服务实例列表中各服务实例的数据变更请求,向第二服务实例列表中各服务实例发送对应于所述数据变更请求的数据变更任务,所述第二服务实例列表包括所述第一服务实例列表中数据状态尚未达到所述数据变更请求的变更目标的服务实例;
状态查询装置,用于查询各服务实例的数据状态;以及
列表更新装置,用于响应于各服务实例的数据状态变化,更新所述第二服务实例列表,直到所述第二服务实例列表为空。
10.根据权利要求9所述的数据管理装置,其中,所述数据变更请求包括第一数据变更请求和第二数据变更请求,该数据管理装置还包括:
第一请求发起装置,用于响应于所述用户的数据升级请求,发出第一数据变更请求,所述数据升级请求为将指定功能模块所依赖的数据从第一数据升级为第二数据的请求,所述第一服务实例列表为涉及所述指定功能模块的服务实例的列表,所述第一数据变更请求的变更目标为将服务实例上用于所述指定功能模块的数据变更为包含所述第一数据和所述第二数据;以及
第二请求发起装置,用于响应于所述第一数据变更请求的变更目标已达到,发出第二数据变更请求,所述第二数据变更请求的变更目标为删除服务实例上的所述第一数据。
11.根据权利要求9所述的数据管理装置,还包括:
任务执行装置,布置在所述服务实例上,用于执行所述数据变更任务,其中,根据所述服务实例上的当前数据状态和所述数据变更任务的数据变更目标,确定数据变更方案。
12.一种具有多个服务实例的分布式系统,包括:
分别布置在所述多个服务实例上的多个工作模块;
与所述多个工作模块通信的管理模块;以及
与所述管理模块通信的调度模块,
其中,所述调度模块针对第一服务实例列表中各服务实例发起于数据变更请求,
所述管理模块响应于所述数据变更请求,向第二服务实例列表中各服务实例上的工作模块发送对应于所述数据变更请求的数据变更任务,所述第二服务实例列表包括所述第一服务实例列表中数据状态尚未达到所述数据变更请求的变更目标的服务实例,
所述工作模块执行所述数据变更任务,并向所述管理模块上报其所在的服务实例的数据状态,
所述管理模块查询各服务实例的数据状态,并且响应于各服务实例的数据状态变化,更新所述第二服务实例列表,直到所述第二服务实例列表为空。
13.根据权利要求12所述的分布式系统,其中,所述数据变更请求包括第一数据变更请求和第二数据变更请求,
所述调度模块响应于所述用户的数据升级请求,发出第一数据变更请求,所述数据升级请求为将指定功能模块所依赖的数据从第一数据升级为第二数据的请求,所述第一服务实例列表为涉及所述指定功能模块的服务实例的列表,所述第一数据变更请求的变更目标为将服务实例上用于所述指定功能模块的数据变更为包含所述第一数据和所述第二数据;并且
所述调度模块响应于所述第一数据变更请求的变更目标已达到,发出第二数据变更请求,所述第二数据变更请求的变更目标为删除服务实例上的所述第一数据。
14.根据权利要求12所述分布式系统,其中,
所述工作模块执行所述数据变更任务,其中,根据所述服务实例上的当前数据状态和所述数据变更任务的数据变更目标,确定数据变更方案。
15.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-8中任何一项所述的方法。
16.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811066550.8A CN109412835B (zh) | 2018-09-11 | 2018-09-11 | 分布式系统及数据管理方法和装置、存储介质、计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811066550.8A CN109412835B (zh) | 2018-09-11 | 2018-09-11 | 分布式系统及数据管理方法和装置、存储介质、计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109412835A true CN109412835A (zh) | 2019-03-01 |
CN109412835B CN109412835B (zh) | 2021-12-03 |
Family
ID=65464803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811066550.8A Active CN109412835B (zh) | 2018-09-11 | 2018-09-11 | 分布式系统及数据管理方法和装置、存储介质、计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109412835B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594866A (zh) * | 2011-12-22 | 2012-07-18 | 中国电子科技集团公司第十五研究所 | 地图服务提供系统和方法 |
CN102737088A (zh) * | 2011-03-18 | 2012-10-17 | 微软公司 | 分布式数据库系统中的无缝升级 |
US20140101648A1 (en) * | 2012-10-05 | 2014-04-10 | Microsoft Corporation | Application version gatekeeping during upgrade |
CN104935616A (zh) * | 2014-03-18 | 2015-09-23 | 华为技术有限公司 | 一种数据处理方法、设备和esb系统 |
CN105426213A (zh) * | 2015-12-04 | 2016-03-23 | 深圳市深信服电子科技有限公司 | 软件更新方法和系统 |
US20160366246A1 (en) * | 2015-06-11 | 2016-12-15 | Microsoft Technology Licensing, Llc | Computing resource deployment system |
CN108282368A (zh) * | 2018-01-24 | 2018-07-13 | 云宏信息科技股份有限公司 | 一种微服务管理系统、方法及计算机存储介质 |
-
2018
- 2018-09-11 CN CN201811066550.8A patent/CN109412835B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737088A (zh) * | 2011-03-18 | 2012-10-17 | 微软公司 | 分布式数据库系统中的无缝升级 |
CN102594866A (zh) * | 2011-12-22 | 2012-07-18 | 中国电子科技集团公司第十五研究所 | 地图服务提供系统和方法 |
US20140101648A1 (en) * | 2012-10-05 | 2014-04-10 | Microsoft Corporation | Application version gatekeeping during upgrade |
CN104935616A (zh) * | 2014-03-18 | 2015-09-23 | 华为技术有限公司 | 一种数据处理方法、设备和esb系统 |
US20160366246A1 (en) * | 2015-06-11 | 2016-12-15 | Microsoft Technology Licensing, Llc | Computing resource deployment system |
CN105426213A (zh) * | 2015-12-04 | 2016-03-23 | 深圳市深信服电子科技有限公司 | 软件更新方法和系统 |
CN108282368A (zh) * | 2018-01-24 | 2018-07-13 | 云宏信息科技股份有限公司 | 一种微服务管理系统、方法及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109412835B (zh) | 2021-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2498394C2 (ru) | Синхронизация жизненных циклов виртуальной машины и приложения | |
US11228570B2 (en) | Safe-transfer exchange protocol based on trigger-ready envelopes among distributed nodes | |
JP2019008791A (ja) | スマートコントラクトライフサイクル管理 | |
US9207929B2 (en) | Integrated system and firmware update method | |
CN105897805B (zh) | 对多层架构的数据中心的资源进行跨层调度的方法和装置 | |
US11836152B2 (en) | Continuous replication and granular application level replication | |
US9135071B2 (en) | Selecting processing techniques for a data flow task | |
US20220147336A1 (en) | Upgrade systems for service domains | |
CN109391664A (zh) | 用于多集群容器部署的系统和方法 | |
US20120284709A1 (en) | Dynamic virtual machine domain configuration and virtual machine relocation management | |
CN113742033B (zh) | 一种kubernetes集群联邦系统及其实现方法 | |
CN103608786A (zh) | 在恢复站点处管理复制的虚拟储存器 | |
CN102945175A (zh) | 一种基于云计算环境的终端软件在线升级系统及其方法 | |
CN110336834A (zh) | 用于防火墙策略的处理方法和装置 | |
CN104503845A (zh) | 一种任务分发方法和系统 | |
CN112596762A (zh) | 一种滚动升级方法及装置 | |
US20140156596A1 (en) | Replication control using eventually consistent meta-data | |
US11093279B2 (en) | Resources provisioning based on a set of discrete configurations | |
CN109510852A (zh) | 灰度发布的方法及装置 | |
CN113127023B (zh) | 业务升级的方法、装置和系统 | |
CN108880896A (zh) | 一种基于大型机的程序灰度发布方法及装置 | |
CN104793981A (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN114840222A (zh) | 基于esop系统的灰度发布方法及相关设备 | |
CN112667711B (zh) | 一种MySQL只读实例管理方法、系统及计算机可读介质 | |
CN109412835A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200811 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 13 layer self unit 01 Applicant before: Guangdong Shenma Search Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |