System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及云计算信息传输,更具体地说,本专利技术涉及一种基于json对比算法实现多云资源同步的方法。
技术介绍
1、授权公告号为cn111061786a的专利公开了一种多云环境下的资源同步方法及其系统,包括如下步骤:1、配置不同云平台的管理域信息,并且加密存到数据库;2:守护进程监控管理域列表,动态初始化和关闭资源同步定时器;3:多云管理平台调用统一资源api接口,根据对应的云平台适配器获取资源信息;4:对统一资源api接口返回的数据进行整合并且保存到数据库中。本专利技术解决了多云平台资源数据的统计分析和统一性问题;可以用于多云管理中的云平台数据资源管理。
2、近年来,随着云计算行业的快速发展,国内有关云计算发展政策也相继出台,大量企业在it应用部署时优先选择云计算模式。企业在云数据中心的建设中,用云率持续提升。考虑到数据的安全性和业务的可扩展性,企业往往不会仅采用单一的云平台或单一云服务商来提供云服务,而是多个多种类型云平台共同存在。针对多个同构或异构技术的私有云或公有云的互联互通、统一纳管、多云协同等问题,业内普遍使用多云管理技术,从同构多云管理、异构云管理以及多云运维管理等方面进行多云管理平台的设计。为了实现对同构或异构的多个私有云或公有云的统一管理、综合运维、互联互通和协同运行。
3、目前主流的私有云主要是基于openstack+kvm、vcenter+exsi等技术体制实现,提供了不同的api接口供多云管理平台进行调用和管理,为多云管理对底层云平台进行统一管理、协同运行增加了技术难度。为了保
4、在多云管理场景下,底层云平台往往存在服务商和技术栈的异构性,不同厂商的云平台所提供的资源数据格式各不相同,增加了多云管理平台同步和管理的难度;具体来说,主流的底层云平台对外提供的资源数据接口,格式主要包括json、xml以及厂商自定义格式三类;以json格式接口为例,不同厂商虽然均采用了json,但对资源属性的描述方式仍存在差异,如属性名称、属性结构层级、属性含义解释的不同;此外,也有部分厂商提供的是xml或自定制的非标准格式接口;在多云管理平台端,如果直接消费不同底层云平台提供的“原生”资源数据接口,将面临资源属性描述存在差异性、格式存在多样性的问题;这将导致在多云管理平台中的资源状态展示、资源操作流程、资源监控统计等方面出现区别,增加多云统一管理的复杂度。
5、这种数据描述的异构性也直接影响多云管理平台同步资源的一致性;在基于不同格式数据的同步过程中,会出现资源属性理解偏差、资源状态漏录等问题,使得多云管理平台中资源状态与底层平台存在不一致,给多云统一运维管理带来困难。
6、鉴于此,本专利技术提出一种基于json对比算法实现多云资源同步的方法以解决上述问题。
技术实现思路
1、为了克服现有技术的上述缺陷,为实现上述目的,本专利技术提供如下技术方案:一种基于json对比算法实现多云资源同步的方法,包括:s1.根据预设时间或接收指令,从底层云平台获取底层云平台资源;从多云管理平台获取多云管理平台资源;
2、s2.将底层云平台资源进行json格式转化并作为源资源,将多云管理平台资源进行json格式转化并作为目标资源;
3、s3.通过json对比算法将源资源和目标资源进行对比,得到资源属性对比结果;
4、s4.将资源属性对比结果进行处理,获取资源的同步类型并存储在多云管理平台的同步资源表中;
5、s5.用户向多云管理平台发送资源同步确认请求;多云管理平台根据资源的同步类型,对存储在多云管理平台数据库中的资源信息进行同步操作。
6、进一步地,底层云平台资源和多云管理平台资源均有两种数据类型,两种数据类型是字典类型和列表类型。
7、进一步地,调用底层云平台提供的restful api接口或sdk接口,从底层云平台获取不同数据格式的资源,资源包括资源属性和资源状态;从资源中提取与多云管理的共同资源属性的资源作为底层云平台资源;
8、通过sqlalchemy软件从多云管理的数据库中获取对象数据格式的资源属性和资源状态作为多云管理平台资源;
9、进一步地,所述步骤s2,包括:
10、将底层云平台资源进行清洗和结构化组织;得到结构化底层资源,利用json库提供的json.dumps方法将结构化底层资源的转化为json格式;
11、将多云管理平台资源进行清洗和结构化组织;得到结构化多云资源,利用json库提供的json.dumps方法将结构化多云资源的转化为json格式。
12、进一步地,所述步骤s3,包括:
13、json对比算法由dict_diff方法和list_diff方法构成;
14、利用dict_diff方法将底层云平台资源和多云管理平台资源中数据类型作为字典类型的底层云平台资源,并和多云管理平台资源进行对比;获得第一对比结果;
15、利用list_diff方法将底层云平台资源和多云管理平台资源中数据类型作为列表类型的底层云平台资源,并和多云管理平台资源进行对比;获得第二对比结果;
16、第一对比结果和第二对比结果构成资源属性对比结果。
17、进一步地,所述dict_diff方法包括:
18、步骤1.创建对比结果字典;
19、步骤2.从源资源字典的键列表中获取每个源资源的键;判断源资源的键是否在忽略资源键列表中;
20、若源资源的键在忽略资源键列表中,则对下一个源资源进行判断;
21、若源资源的键不在忽略资源键列表中,则进入步骤3;
22、步骤3.判断源资源的键是否在目标资源字典的键列表中;
23、若源资源的键不在目标资源字典的键列表中,则表示该源资源属于新增资源,标记该源资源的同步状态为新增资源,并将该资源更新到对比结果字典中;
24、若源资源的键在目标资源字典的键列表中,则进入步骤4;
25、步骤4.判断源资源的值是否等于目标资源的值;
26、若源资源的值等于目标资源的值,则进入步骤2;
27、若源资源的值不等于目标资源的值,则进入步骤5;
28、步骤5.判断源资源的值和目标资源的数据类型;
29、若源资源的值和目标资源的值都为字典类型,则调用dict_diff方法,得到diff_diff对比结果;
30、若dict_diff对比结果不为空,则判断源资源字典的键是否等于目标资源字典的键本文档来自技高网...
【技术保护点】
1.一种基于JSON对比算法实现多云资源同步的方法,其特征在于,包括:
2.根据权利要求1所述的一种基于JSON对比算法实现多云资源同步的方法,其特征在于,底层云平台资源和多云管理平台资源均有两种数据类型,两种数据类型是字典类型和列表类型。
3.根据权利要求2所述的一种基于JSON对比算法实现多云资源同步的方法,其特征在于,调用底层云平台提供的RESTful API接口或SDK接口,从底层云平台获取不同数据格式的资源,资源包括资源属性和资源状态;从资源中提取与多云管理的共同资源属性的资源作为底层云平台资源;
4.根据权利要求3所述的一种基于JSON对比算法实现多云资源同步的方法,其特征在于,所述步骤S2,包括:
5.根据权利要求4所述的一种基于JSON对比算法实现多云资源同步的方法,其特征在于,所述步骤S3,包括:
6.根据权利要求5所述的一种基于JSON对比算法实现多云资源同步的方法,其特征在于,所述dict_diff方法包括:
7.根据权利要求6所述的一种基于JSON对比算法实现多云资源同步的方法,其特征
8.根据权利要求7所述的一种基于JSON对比算法实现多云资源同步的方法,其特征在于,资源的同步类型包括新增、删除和变更;同步资源表包括no_support_desc字段、env_resource_attr字段和mcp_resource_attr字段。
9.根据权利要求8所述的一种基于JSON对比算法实现多云资源同步的方法,其特征在于,所述步骤S4,包括:
10.根据权利要求9所述的一种基于JSON对比算法实现多云资源同步的方法,其特征在于,所述S5,包括:
...【技术特征摘要】
1.一种基于json对比算法实现多云资源同步的方法,其特征在于,包括:
2.根据权利要求1所述的一种基于json对比算法实现多云资源同步的方法,其特征在于,底层云平台资源和多云管理平台资源均有两种数据类型,两种数据类型是字典类型和列表类型。
3.根据权利要求2所述的一种基于json对比算法实现多云资源同步的方法,其特征在于,调用底层云平台提供的restful api接口或sdk接口,从底层云平台获取不同数据格式的资源,资源包括资源属性和资源状态;从资源中提取与多云管理的共同资源属性的资源作为底层云平台资源;
4.根据权利要求3所述的一种基于json对比算法实现多云资源同步的方法,其特征在于,所述步骤s2,包括:
5.根据权利要求4所述的一种基于json对比算法实现多云资源同步的方法,其特征在于,所述步骤s3,...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。