一种基于云原生的分布式应用快照系统和快照创建方法技术方案

技术编号:38673027 阅读:12 留言:0更新日期:2023-09-02 22:49
本发明专利技术提供一种基于云原生的分布式应用快照系统和快照创建方法,系统包括:分布式应用管理模块,用于根据分布式应用的配置信息创建分布式应用,分布式应用由多个微服务组成;快照管理模块,用于根据快照创建请求与每个微服务快照代理模块交互,触发每个微服务快照代理模块分别为对应的微服务创建相应的快照;微服务快照代理模块,用于接收快照创建请求;发送快照创建请求给微服务创建快照;当微服务完成快照创建后,将微服务的快照存储到快照后端存储模块,向其子微服务发送快照创建请求,以及向快照管理模块发送快照创建成功的消息;快照后端存储模块,用于存储多个微服务的快照。该系统能够为云原生场景下的分布式应用创建一致性快照。一致性快照。一致性快照。

【技术实现步骤摘要】
一种基于云原生的分布式应用快照系统和快照创建方法


[0001]本专利技术涉及云原生的分布式应用领域,具体涉及一种基于云原生的分布式应用快照系统和快照创建方法。

技术介绍

[0002]云原生快照系统以单个微服务工作负载实例为单元进行处理,传统的分布式应用一致性快照系统往往针对的是微服务的实例数是固定的场景。
[0003]在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:现有的技术方案要么是无法处理云原生场景下微服务可弹性伸缩的场景,要么是无法为分布式应用提供一致性快照。

技术实现思路

[0004]有鉴于此,本专利技术实施例的目的在于提供一种基于云原生的分布式应用快照系统和快照创建方法,以解决
技术介绍
中的上述问题,通过基于云原生的分布式应用快照系统和快照创建方法,为云原生场景下的分布式应用创建一致性快照。
[0005]第一方面,本专利技术实施例提供了一种基于云原生的分布式应用快照系统,所述系统包括:分布式应用管理模块,用于获取分布式应用的配置信息,根据所述分布式应用的配置信息创建分布式应用,所述分布式应用由多个微服务组成,每个微服务存在至少一个实例,每个实例中微服务快照代理模块以边车容器的方式与微服务部署在一起;快照管理模块,用于接收快照创建请求,根据所述快照创建请求与每个微服务快照代理模块交互,触发每个微服务快照代理模块分别对应的微服务创建相应的快照;微服务快照代理模块,用于接收所述快照管理模块以及父微服务发送的快照创建请求;当满足预设条件时发送快照创建请求给当前微服务容器,触发当前微服务容器创建快照;当所述当前微服务容器创建完成快照后,所述微服务快照代理模块将创建的快照存储到快照后端存储模块;向子微服务发送快照创建请求,以及向所述快照管理模块发送当前微服务的快照创建成功的消息;快照后端存储模块,用于存储分布式应用中的多个微服务的快照。
[0006]在一些可能的实施方式中,所述快照后端存储模块,具体用于采用对象存储的方式作为所述分布式应用的快照的后端存储;所述分布式应用的配置信息包括多个微服务配置信息,每个所述微服务配置信息包括:微服务名字、微服务实例数、父微服务列表和微服务实例对应的快照代理容器地址列表。
[0007]在一些可能的实施方式中,所述快照管理模块,具体包括:接收单元,用于接收快照创建请求;判断处理单元,用于判断分布式应用的状态;如果分布式应用正在执行快照,则创建快照失败;如果分布式应用没有正在执行快照,则在快照后端存储模块中创建快照存储
的路径,更新分布式应用的状态为正在执行快照,以及创建快照对象;快照创建请求发送单元,用于获取分布式应用的配置信息,根据分布式应用的配置信息,向分布式应用的每个实例中的微服务对应的微服务快照代理模块发送创建快照的命令;确认单元,用于当收到每个实例中的微服务对应的微服务快照代理模块发送的创建成功消息后,确认分布式应用的快照创建成功。
[0008]在一些可能的实施方式中,所述接收单元,具体用于接收第一快照创建请求,所述第一快照创建请求中包括:分布式应用的名字和快照时间;所述快照创建请求发送单元,具体用于根据所述分布式应用的名字,获取分布式应用的配置信息,所述分布式应用的配置信息包括多个微服务配置信息;通过遍历每个微服务配置信息中的微服务实例对应的快照代理容器地址列表,将分布式应用的名字、快照时间和分布式应用的配置信息组成第二快照创建请求,并且将所述第二快照创建请求发送给分布式应用的每个微服务实例对应的快照代理容器;所述确认单元,具体用于收集来自微服务实例中的快照代理容器发送的快照完成消息,当每个微服务收到的消息数等于每个父微服务列表对应的微服务实例数时,表示该微服务完成快照,当所有的微服务都完成快照后,更新快照状态信息以表示快照创建成功,以及更新分布式应用的状态信息。
[0009]在一些可能的实施方式中,所述微服务快照代理模块,具体用于:接收所述第二快照创建请求,提取所述第二快照创建请求中的快照时间作为当前微服务的快照时间,以及提取分布式应用的配置信息中的当前微服务配置信息;判断微服务配置信息中的父微服务列表是否为空;如果为空,则直接给微服务容器发送命令创建快照,等待微服务容器创建快照;如果微服务配置信息中的父微服务列表不为空,计算需要接收的父微服务传递下来的总快照创建请求数;记录接收到来自父微服务的快照创建请求数;当微服务接收到来自父微服务的快照创建请求时,判断父微服务的快照时间是否与当前微服务的快照时间相同;如果两个快照时间不相同,表示这个快照创建请求是错误的,应当丢弃;如果两个快照时间相同,则表示接收到了一个父微服务传递下来的合法的快照创建请求,将来自父微服务的快照创建请求数加1;当来自父微服务的快照创建请求数等于总快照创建请求数时,给微服务容器发送命令创建快照,等待微服务容器创建快照;在微服务容器完成快照创建后,将快照存储到快照后端存储模块的指定路径;遍历分布式应用的配置信息中的每个微服务配置信息;判断微服务配置信息中的父微服务列表是否包含当前微服务名字;如果该微服务配置信息中的父微服务列表中包含当前微服务名字,表示该微服务为当前微服务的子微服务,则遍历子微服务的快照代理容器地址列表,将快照创建请求发送给子微服务实例的快照代理容器;
向所述快照管理模块发送当前微服务快照创建完成的消息。
[0010]在一些可能的实施方式中,所述微服务快照代理模块,具体用于:通过如下方式计算需要接收的父微服务传递下来的总快照创建请求数:遍历父微服务列表,获取每个父微服务列表对应的微服务实例数,累加所有父微服务列表对应的微服务实例数得到总快照创建请求数。
[0011]第二方面,提供一种基于云原生的分布式应用快照创建方法,所述方法包括:接收快照创建请求;当满足预设条件时,发送快照创建请求给当前微服务创建快照;当所述当前微服务创建完成快照后,将所述当前微服务的快照存储到快照后端存储模块;向所述当前微服务的子微服务发送快照创建请求;向快照管理模块发送所述当前微服务的快照创建成功的消息。
[0012]在一些可能的实施方式中,所述的接收快照创建请求,具体包括:从快照管理模块接收第二快照创建请求,提取所述第二快照创建请求中的快照时间作为当前微服务的快照时间,以及提取分布式应用的配置信息中的当前微服务的配置信息;其中,所述第二快照创建请求中包括分布式应用的名字、快照时间和分布式应用的配置信息;所述第二快照创建请求是所述快照管理模块根据第一快照请求生成的,所述第一快照创建请求中包括:分布式应用的名字和快照时间;所述的当满足预设条件时,发送快照创建请求给微服务创建快照,具体包括:判断微服务的配置信息中的父微服务列表是否为空;如果为空,则直接给微服务容器发送命令创建快照,等待微服务容器创建快照;如果微服务的配置信息中的父微服务列表不为空,计算需要接收的父微服务传递下来的总快照创建请求数;记录接收到来自父微服务的快照创建请求数;当微服务接收到来自父微服务的快照创建请求时,判断父微服务的快照时间是否与当前微服务的快照时间相同;如果两个快照时间不相等本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于云原生的分布式应用快照系统,其特征在于,所述系统包括:分布式应用管理模块,用于获取分布式应用的配置信息,根据所述分布式应用的配置信息创建分布式应用,所述分布式应用由多个微服务组成,每个微服务存在至少一个实例,每个所述实例中的微服务快照代理模块以边车容器的方式与所述微服务部署在一起;快照管理模块,用于接收快照创建请求,根据所述快照创建请求与每个所述实例中的微服务快照代理模块交互,触发每个所述实例中的微服务快照代理模块分别对应的微服务创建相应的快照;微服务快照代理模块,用于接收所述快照管理模块以及父微服务发送的快照创建请求;当满足预设条件时发送快照创建请求给当前微服务容器,触发当前微服务容器创建快照;当所述当前微服务容器创建快照完成后,所述微服务快照代理模块将创建的快照存储到快照后端存储模块,向子微服务发送快照创建请求,以及向所述快照管理模块发送所述当前微服务容器的快照创建成功的消息;快照后端存储模块,用于存储分布式应用中的多个微服务的快照。2.根据权利要求1所述的系统,其特征在于,所述快照后端存储模块,具体用于采用对象存储的方式作为所述分布式应用的快照的后端存储;所述分布式应用的配置信息包括多个微服务配置信息,每个所述微服务配置信息包括:微服务名字、微服务实例数、父微服务列表和微服务实例对应的快照代理容器地址列表。3.根据权利要求2所述的系统,其特征在于,所述快照管理模块,具体包括:接收单元,用于接收快照创建请求;判断处理单元,用于判断所述分布式应用的状态;如果所述分布式应用正在执行快照,则创建快照失败;如果所述分布式应用没有正在执行快照,则在所述快照后端存储模块中创建快照存储的路径,更新所述分布式应用的状态为正在执行快照,以及创建快照对象;快照创建请求发送单元,用于获取所述分布式应用的配置信息,根据所述分布式应用的配置信息向所述分布式应用的每个实例中的微服务对应的微服务快照代理模块发送创建快照的命令;确认单元,用于当收到每个实例中的微服务对应的微服务快照代理模块发送的创建成功消息后,确认分布式应用的快照创建成功。4.根据权利要求3所述的系统,其特征在于,所述接收单元,具体用于接收第一快照创建请求,所述第一快照创建请求中包括:分布式应用的名字和快照时间;所述快照创建请求发送单元,具体用于根据所述分布式应用的名字,获取所述分布式应用的配置信息,所述分布式应用的配置信息包括多个微服务配置信息;通过遍历每个微服务配置信息中的微服务实例对应的快照代理容器地址列表,将所述分布式应用的名字、快照时间和分布式应用的配置信息组成第二快照创建请求,并且将所述第二快照创建请求发送给分布式应用的每个微服务实例对应的快照代理容器;所述确认单元,具体用于收集来自微服务实例中的快照代理容器发送的快照完成消息,当每个微服务收到的消息数等于每个父微服务对应的微服务实例数之和时,表示该微服务完成快照,当所有的微服务都完成快照后,更新快照状态信息以表示快照创建成功,以
及更新分布式应用的状态信息。5.根据权利要求4所述的系统,其特征在于,所述微服务快照代理模块,具体用于:接收所述第二快照创建请求,提取所述第二快照创建请求中的快照时间作为当前微服务的快照时间,以及提取分布式应用的配置信息中的当前微服务配置信息;判断所述微服务配置信息中的父微服务列表是否为空;如果为空,则直接给微服务容器发送命令创建快照,等待微服务容器创建快照;如果微服务配置信息中的父微服务列表不为空,计算需要接收的父微服务传递下来的总快照创建请求数;记录接收到来自父微服务的快照创建请求数;当所述微服务接收到来自所述父微服务的快照创建请求时,判断所述父微服务的快照时间是否与当前微服务的快照时间...

【专利技术属性】
技术研发人员:罗斌
申请(专利权)人:中国电子投资控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1