CN109471870B - 资源数据读取的方法、装置、电子设备和计算机可读介质 - Google Patents
资源数据读取的方法、装置、电子设备和计算机可读介质 Download PDFInfo
- Publication number
- CN109471870B CN109471870B CN201811372302.6A CN201811372302A CN109471870B CN 109471870 B CN109471870 B CN 109471870B CN 201811372302 A CN201811372302 A CN 201811372302A CN 109471870 B CN109471870 B CN 109471870B
- Authority
- CN
- China
- Prior art keywords
- resource
- information
- updating
- preset
- 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.)
- Active
Links
Images
Abstract
本发明提供了一种资源数据读取的方法、装置、电子设备和计算机可读介质,该方法包括:获取资源查询请求;基于资源查询请求在预设的ES索引中获取与账号信息所对应的目标资源信息;将目标资源信息反馈至控制台。该方法中,子账号的用户能够快速准确的在预设的ES索引中读取得到自身的资源信息,方便快捷,无需再去管理端读取数据,得到的资源信息更加准确,缓解了现有技术无法通过子账号对自身项目资源信息进行读取的技术问题。
Description
技术领域
本发明涉及信息同步的技术领域,尤其是涉及一种资源数据读取的方法、装置、电子设备和计算机可读介质。
背景技术
在云计算管理架构中,包含有控制台、OPENAPI(Open Application ProgrammingInterface,开放的应用编程接口)、管理端和云计算底层。其中的管理端只支持租户的概念,而租户对应于控制台上的主账户,当对应于子账号的用户通过控制台去管理端查看资源(例如IP资源,服务器资源,主机资源等)时,由于管理端不感知子账号,最终是采用租户(即主账户)进行的资源读取,也就是最终获取到的资源信息为主账户的资源信息,而非用户本身子账号的资源信息,无法实现子账号纬度的资源隔离。
但是,在项目中,比如将现有的1000台虚拟机平均分配到10个项目中,每个项目中会各有100台虚拟机,进而再为每个项目分配不同的子账号去管理,由于现有的云计算管理架构中的管理端不感知子账号,所以无法实现各子账号对自身项目中资源的读取,即无法将现有的云计算管理架构应用于项目制。
综上,现有的云计算管理中,无法实现通过子账号对自身项目资源信息的读取。
发明内容
有鉴于此,本发明的目的在于提供一种资源数据读取的方法、装置、电子设备和计算机可读介质,以缓解现有的云计算管理中,无法实现通过子账号对自身项目资源信息进行读取的技术问题。
第一方面,本发明实施例提供了一种资源数据读取的方法,应用于OPENAPI,所述方法包括:
获取资源查询请求;其中,所述资源查询请求包括账号信息和待查询资源信息,所述待查询资源信息包括:待查询资源的资源ID;
基于所述资源查询请求在预设的ES索引中获取与所述账号信息所对应的目标资源信息;其中,所述预设的ES索引中包含有多个账号信息以及与每个账号信息对应的资源信息,所述目标资源信息为分别与所述账号信息和所述待查询资源信息相匹配的资源信息;
将所述目标资源信息反馈至控制台。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,在获取资源查询请求之后,在基于所述资源查询请求在预设的ES索引中获取与所述账号信息所对应的目标资源信息之前,所述方法还包括:
对所述资源查询请求进行权限校验,其中,当校验通过时,则基于所述资源查询请求在所述预设的ES索引中获取与所述账号信息所对应的目标资源信息。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,在获取资源查询请求之前,所述方法还包括通过以下方法对所述预设的ES索引进行更新:
获取更新资源请求,其中,所述更新资源请求中携带有账号信息;
根据所述更新资源请求调用管理端接口,以使管理端执行资源更新操作;
在所述管理端完成所述资源更新操作后,对所述预设的ES索引中对应的资源信息进行更新,并将所述预设的ES索引的更新结果返回至所述控制台;其中,所述更新结果包括以下任一种:更新成功的结果,更新失败的结果。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,对所述预设的ES索引中对应的资源信息进行更新包括:
接收所述管理端执行所述资源更新操作后返回的资源更新结果;
获取消息队列中的资源更新消息;其中,所述资源更新消息是在所述管理端完成对应的资源更新操作后,向所述消息队列中发送的消息,所述资源更新结果和所述资源更新消息用于表征资源更新前后的信息;
结合所述资源更新结果和所述资源更新消息对所述预设的ES索引中对应的资源信息进行更新。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述资源更新结果中包含第一更新时间戳,所述资源更新消息中包含第二更新时间戳,结合所述资源更新结果和所述资源更新消息对所述预设的ES索引中对应的资源信息进行更新包括:
根据所述第一更新时间戳和所述第二更新时间戳在所述资源更新结果和所述资源更新消息中确定最新更新信息;
根据所述最新更新信息对所述预设的ES索引中对应的资源信息进行更新。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,根据所述最新更新信息对所述预设的ES索引中对应的资源信息进行更新包括:
对所述最新更新信息进行解析,得到解析后的更新信息;
根据所述解析后的更新信息确定目标资源类型;
采用枚举值的方法将所述解析后的更新信息同步至所述预设的ES索引中所述目标资源类型所对应的位置。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,获取更新资源请求包括:
获取账号信息和用户请求信息;其中,所述用户请求信息包括:待更新资源的资源类型信息,所述待更新资源的更新操作信息;
根据所述账号信息在预设账号权限映射关系中确定所述账号信息所对应的目标权限;
判断所述用户请求信息是否属于所述目标权限;
如果属于所述目标权限,则将所述账号信息和所述用户请求信息作为所述更新资源请求;
如果不属于所述目标权限,则所述用户请求信息无效。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述消息队列为RabbitMQ;
所述更新资源请求包括:增加资源的请求、删除资源的请求、更改资源的请求;
所述预设的ES索引为非关系型的nosql数据库。
第二方面,本发明实施例还提供了一种资源数据读取的装置,应用于OPENAPI,所述装置包括:
第一获取模块,用于获取资源查询请求;其中,所述资源查询请求包括账号信息和待查询资源信息,所述待查询资源信息包括:待查询资源的资源ID;
读取模块,用于基于所述资源查询请求在预设的ES索引中获取与所述账号信息所对应的目标资源信息;其中,所述预设的ES索引中包含有多个账号信息以及与每个账号信息对应的资源信息,所述目标资源信息为分别与所述账号信息和所述待查询资源信息相匹配的资源信息;
反馈模块,用于将所述目标资源信息反馈至控制台。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述装置还包括:
权限校验模块,用于对所述资源查询请求进行权限校验,其中,当校验通过时,则基于所述资源查询请求在所述预设的ES索引中获取与所述账号信息所对应的目标资源信息。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述装置还包括:
第二获取模块,用于获取更新资源请求,其中,所述更新资源请求中携带有账号信息;
调用模块,用于根据所述更新资源请求调用管理端接口,以使管理端执行资源更新操作;
更新模块,用于在所述管理端完成所述资源更新操作后,对所述预设的ES索引中对应的资源信息进行更新,并将所述预设的ES索引的更新结果返回至所述控制台;其中,所述更新结果包括以下任一种:更新成功的结果,更新失败的结果。
结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述更新模块包括:
接收单元,用于接收所述管理端执行所述资源更新操作后返回的资源更新结果;
第一获取单元,用于获取消息队列中的资源更新消息;其中,所述资源更新消息是在所述管理端完成对应的资源更新操作后,向所述消息队列中发送的消息,所述资源更新结果和所述资源更新消息用于表征资源更新前后的信息;
更新单元,用于结合所述资源更新结果和所述资源更新消息对所述预设的ES索引中对应的资源信息进行更新。
结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,其中,所述资源更新结果中包含第一更新时间戳,所述资源更新消息中包含第二更新时间戳,所述更新单元包括:
确定子单元,用于根据所述第一更新时间戳和所述第二更新时间戳在所述资源更新结果和所述资源更新消息中确定最新更新信息;
更新子单元,用于根据所述最新更新信息对所述预设的ES索引中对应的资源信息进行更新。
结合第二方面,本发明实施例提供了第二方面的第五种可能的实施方式,其中,所述更新子单元还用于:
对所述最新更新信息进行解析,得到解析后的更新信息;
根据所述解析后的更新信息确定目标资源类型;
采用枚举值的方法将所述解析后的更新信息同步至所述预设的ES索引中所述目标资源类型所对应的位置。
结合第二方面,本发明实施例提供了第二方面的第六种可能的实施方式,其中,所述第二获取模块包括:
第二获取单元,用于获取账号信息和用户请求信息;其中,所述用户请求信息包括:待更新资源的资源类型信息,所述待更新资源的更新操作信息;
确定单元,用于根据所述账号信息在预设账号权限映射关系中确定所述账号信息所对应的目标权限;
判断单元,用于判断所述用户请求信息是否属于所述目标权限;
第一设定单元,如果属于所述目标权限,则将所述账号信息和所述用户请求信息作为所述更新资源请求;
第二设定单元,用于如果不属于所述目标权限,则所述用户请求信息无效。
结合第二方面,本发明实施例提供了第二方面的第七种可能的实施方式,其中,所述消息队列为RabbitMQ;
所述更新资源请求包括:增加资源的请求、删除资源的请求、更改资源的请求;
所述预设的ES索引为非关系型的nosql数据库。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述的方法。
第四方面,本发明实施例提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述第一方面中任一项所述的方法。
本发明实施例带来了以下有益效果:现有技术中当子账号的用户通过控制台去管理端查看资源时,由于管理端不感知子账号,最终获取到的资源信息为主账户的资源信息,无法实现通过子账号对自身项目资源信息的读取。与现有技术相比,本发明的资源数据读取的方法中,OPENAPI先获取资源查询请求,进而基于资源查询请求在预设的ES索引中获取与账号信息所对应的目标资源信息,最终将目标资源信息反馈至控制台。该方法中,子账号的用户能够快速准确的在预设的ES索引中读取得到自身的资源信息,方便快捷,无需再去管理端读取数据,得到的资源信息更加准确,缓解了现有技术无法通过子账号对自身项目资源信息进行读取的技术问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种资源数据读取的方法的流程图;
图2为本发明实施例提供的另一种资源数据读取的方法的流程图;
图3为本发明实施例提供的对预设的ES索引进行更新的方法流程图;
图4为本发明实施例提供的获取更新资源请求的方法流程图;
图5为本发明实施例提供的对预设的ES索引中对应的资源信息进行更新的方法流程图;
图6为本发明实施例提供的一种资源数据读取的装置的功能模块图;
图7为本发明实施例提供的另一种资源数据读取的装置的功能模块图;
图8为本发明实施例提供的一种电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种资源数据读取的方法进行详细介绍。
实施例一:
一种资源数据读取的方法,应用于OPENAPI,参考图1,该方法包括以下步骤S102、步骤S104和步骤S106:
步骤S102、获取资源查询请求。
其中,资源查询请求包括账号信息和待查询资源信息,待查询资源信息包括:待查询资源的资源ID。
在本发明实施例中,发明人对OPENAPI进行了改善,改善后的OPENAPI能够同步管理端中的资源信息,该OPENAPI有子账号的概念。所以,子账号的用户在读取资源信息时,可在OPENAPI中读取,具体是在OPENAPI中的ES(ElasticSearch)索引中读取(即读操作),更加快捷方便。而在对资源信息进行更新操作时(即写操作),还是通过管理端实现,也就是在本发明中,实现了资源的读写分离。
在进行资源信息读取时,OPENAPI先获取资源查询请求。具体的,用户可在控制台上发起资源查询请求,该资源查询请求中携带有账号信息和待查询资源信息,待查询资源信息包括:待查询资源的资源ID和/或待查询资源的资源所属区域。
步骤S104、基于资源查询请求在预设的ES索引中获取与账号信息所对应的目标资源信息。
其中,预设的ES索引中包含有多个账号信息以及与每个账号信息对应的资源信息。目标资源信息为分别与账号信息和待查询资源信息相匹配的资源信息。
在得到资源查询请求后,OPENAPI会根据资源查询请求在预设的ES索引中读取与账号信息所对应的目标资源信息,该目标资源信息为分别与账号信息和待查询资源信息相匹配的资源信息。具体的,预设的ES索引中的每条记录中都会包含账号信息。
步骤S106、将目标资源信息反馈至控制台。
在得到目标资源信息后,再将目标资源信息反馈至控制台,以使用户进行查看。
为了方便理解,下面以查询主机资源为例进行具体说明。查询的过程为:
用户登录控制台,选择主机页面,得到主机列表。用户在主机列表中选择要查询的主机。控制台基于用户的选择生成资源查询请求,并将该资源查询请求发送至OPENAPI。OPENAPI会根据资源查询请求获取用户的信息、请求的接口信息和资源过滤条件,然后进行条件封装,进而根据封装的结果在预设的ES索引中进行资源信息查询,得到对应的目标资源信息,进而反馈目标资源信息至控制台,以使用户进行查看。
本发明的资源数据读取的方法中,OPENAPI先获取资源查询请求,进而基于资源查询请求在预设的ES索引中获取与账号信息所对应的目标资源信息,最终将目标资源信息反馈至控制台。该方法中,子账号的用户能够快速准确的在预设的ES索引中读取得到自身的资源信息,方便快捷,无需再去管理端读取数据,得到的资源信息更加准确,缓解了现有技术无法通过子账号对自身项目资源信息进行读取的技术问题。
上述内容对本发明的资源数据读取的方法进行了简要描述,下面对其中涉及到的具体内容进行详细介绍。
在一个可选地实施方式中,参考图2,在获取资源查询请求之后,在基于资源查询请求在预设的ES索引中获取与账号信息所对应的目标资源信息之前,该方法还包括:
步骤S103、对资源查询请求进行权限校验,其中,当校验通过时,则基于资源查询请求在预设的ES索引中获取与账号信息所对应的目标资源信息。
具体的,OPENAPI在获取到资源查询请求后,需要判断一下该用户账号是否具有对该资源进行查询的权限。也就是对资源查询请求进行权限校验。权限校验就涉及主账户和子账号,主账户默认有所有的权限,子账号需要主账户(用户)事先到控制台为子账号配置权限。
具体的权限校验是由KOP(Kingsoft yun open platform,金山云开放平台)完成的,KOP为OPENAPI的组成部分,在OPENAPI中还包含INNER API(金山云内部服务接口,其中融合有预设的ES索引),其为各个产品线的接口,这些接口需要注册到KOP后,才形成OPENAPI。校验时,也就是将资源查询请求的信息与预先配置的权限进行对比,如果资源查询请求属于预先配置的权限,则该资源查询请求校验通过,则基于资源查询请求在预设的ES索引中获取与账号信息所对应的目标资源信息;反之,校验不通过,不进行后续的查询操作。
上述内容对资源数据读取的过程进行了详细介绍,下面对得到预设的ES索引(即将管理端资源信息同步至预设的ES索引中)的更新过程进行详细描述。
可选地,参考图3,在获取资源查询请求之前,该方法还包括通过以下步骤S301-步骤S303对预设的ES索引进行更新:
步骤S301、获取更新资源请求。
其中,更新资源请求中携带有账号信息。具体的,用户可以通过控制台或者直接调用OPENAPI的方式发起更新资源请求,进而进行更新资源。
其中,参考图4,获取更新资源请求包括以下步骤S401-步骤S405:
步骤S401、获取账号信息和用户请求信息;其中,用户请求信息包括:待更新资源的资源类型信息,待更新资源的更新操作信息。
具体的,用户通过控制台或者直接调用OPENAPI的方式发送账号信息和用户请求信息。
步骤S402、根据账号信息在预设账号权限映射关系中确定账号信息所对应的目标权限。
在得到账号信息后,进一步根据账号信息在预设账号权限映射关系中确定账号信息所对应的目标权限。
步骤S403、判断用户请求信息是否属于目标权限;
进而判断用户请求信息是否属于目标权限。
步骤S404、如果属于目标权限,则将账号信息和用户请求信息作为更新资源请求;
步骤S405、如果不属于目标权限,则用户请求信息无效。
在该种情况下,更新资源请求无效。
步骤S302、根据更新资源请求调用管理端接口,以使管理端执行资源更新操作;
在得到更新资源请求后,根据更新资源请求调用对应的管理端接口,以使管理端执行资源更新操作。
比如,更新资源请求为新建主机的请求,就会调用管理端新建主机的接口进行主机的新建。
步骤S303、在管理端完成资源更新操作后,对预设的ES索引中对应的资源信息进行更新,并将预设的ES索引的更新结果返回至控制台;其中,更新结果包括以下任一种:更新成功的结果,更新失败的结果。
在管理端完成资源更新操作后,对预设的ES索引中对应的资源信息进行更新,更新完成后,将更新成功的信息返回至控制台,这样用户再对该资源进行查询时,才能确保正确。
下面对预设的ES索引中对应的资源信息进行更新的过程进行详细介绍:
在一个可选地实施例中,参考图5,对预设的ES索引中对应的资源信息进行更新包括步骤S501-步骤S503:
步骤S501、接收管理端执行资源更新操作后返回的资源更新结果;
在本发明实施例中,发明人为确保实时性的问题,采用了同步更新索引的方法。
下面以创建主机为例进行说明:用户通过控制台调用OPENAPI的接口或直接调用OPENAPI的接口进行主机的创建,相应的OPENAPI会调用管理端的主机创建接口,具体调用代码部分,使用了aspectj的切面技术,对所有的标注为更新操作的接口(使用的注解annotation技术),动态的在运行期外面统一包了一层代码,这层代码会在收到管理端的更新成功的返回后,自动判断返回的数据类型格式,来更新预设的ES索引。
管理端返回的数据格式,都会有固定的位置,来标明是哪一类资源,OPENAPI代码中会用一个枚举值来对应一类资源应该同步到预设的ES中去。
即管理端在完成主机的创建后,并不会直接把结果发送至控制台告知用户,而是会向OPENAPI发送资源更新结果,OPENAPI将创建的主机信息同步至预设的ES索引中,之后OPENAPI再把更新成功的结果返回给控制台。也就是OPENAPI的返回,会等预设的ES索引中数据更新完成,这样就解决了数据实时性的问题。
步骤S502、获取消息队列中的资源更新消息。
其中,资源更新消息是在管理端完成对应的资源更新操作后,向消息队列中发送的消息,资源更新结果和资源更新消息用于表征资源更新前后的信息。
另外,为了保证数据的最终一致性,管理端针对任何资源的更新操作,会在完成后,发出一个资源更新消息。使用的消息队列是RabbitMQ。
OPENAPI的定时任务模块获取消息队列中的资源更新消息,根据该资源更新消息再一次对预设的ES索引中的资源信息进行更新。
通过消息队列的方式再一次对预设的ES索引中的信息进行更新的目的是:如果步骤S501中同步的方式更新索引更新失败后,可以通过该异步的方式再一次对预设的ES索引中的资源信息进行更新,确保了预设的ES索引中数据的准确性。
步骤S503、结合资源更新结果和资源更新消息对预设的ES索引中对应的资源信息进行更新。
在得到资源更新结果和资源更新消息后,结合资源更新结果和资源更新消息对预设的ES索引中对应的资源信息进行更新。
具体的,资源更新结果中包含第一更新时间戳,资源更新消息中包含第二更新时间戳,结合资源更新结果和资源更新消息对预设的ES索引中对应的资源信息进行更新时,根据第一更新时间戳和第二更新时间戳在资源更新结果和资源更新消息中确定最新更新信息;根据最新更新信息对预设的ES索引中对应的资源信息进行更新。
比如,资源更新结果中的第一更新时间戳为1,资源更新消息中的第二更新时间戳为2,在3时刻同时收到了1时间戳的资源更新结果和2时间戳的资源更新消息,这时会产生一个问题,就是以哪条记录为准,发明人设计了一套时序机制,即将时间戳靠后(即最新)的更新信息作为更新的依据。
具体的,根据最新更新信息对预设的ES索引中对应的资源信息进行更新包括以下步骤:
(1)对最新更新信息进行解析,得到解析后的更新信息;
(2)根据解析后的更新信息确定目标资源类型;
(3)采用枚举值的方法将解析后的更新信息同步至预设的ES索引中目标资源类型所对应的位置。
每一种资源都有一个类型值,用来区分资源的类型。根据解析后的更新信息就能确定目标资源类型(具体为类型值),进而采用枚举值的方法将解析后的更新信息同步至预设的ES索引中目标资源类型所对应的位置。
在本发明实施例中,更新资源请求包括:增加资源的请求,删除资源的请求,更改资源的请求;预设的ES索引为非关系型的nosql数据库,该nosql数据库为缓存型数据库,所以读取预设的ES索引的方式能够大大提高读取的性能,与读取管理端的方式相比,读取性能能提高10倍左右。
实施例二:
一种资源数据读取的装置,应用于OPENAPI,参考图6,该装置包括:
第一获取模块11,用于获取资源查询请求;其中,资源查询请求包括账号信息和待查询资源信息,待查询资源信息包括:待查询资源的资源ID;
第二获取模块13,用于基于资源查询请求在预设的ES索引中获取与账号信息所对应的目标资源信息;其中,预设的ES索引中包含有多个账号信息以及与每个账号信息对应的资源信息,目标资源信息为分别与账号信息和待查询资源信息相匹配的资源信息;
反馈模块15,用于将目标资源信息反馈至控制台。
本发明的资源数据读取的装置中,OPENAPI先获取资源查询请求,进而基于资源查询请求在预设的ES索引中获取与账号信息所对应的目标资源信息,最终将目标资源信息反馈至控制台。该装置中,子账号的用户能够快速准确的在预设的ES索引中读取得到自身的资源信息,方便快捷,无需再去管理端读取数据,得到的资源信息更加准确,缓解了现有技术无法通过子账号对自身项目资源信息进行读取的技术问题。
可选地,参考图7,该装置还包括:
权限校验模块12,用于对资源查询请求进行权限校验,其中,当校验通过时,则基于资源查询请求在预设的ES索引中获取与账号信息所对应的目标资源信息。
可选地,该装置还包括:
第三获取模块,用于获取更新资源请求,其中,更新资源请求中携带有账号信息;
调用模块,用于根据更新资源请求调用管理端接口,以使管理端执行资源更新操作;
更新模块,用于在管理端完成资源更新操作后,对预设的ES索引中对应的资源信息进行更新,并将预设的ES索引的更新结果返回至控制台;其中,更新结果包括以下任一种:更新成功的结果,更新失败的结果。
可选地,更新模块包括:
接收单元,用于接收管理端执行资源更新操作后返回的资源更新结果;
第一获取单元,用于获取消息队列中的资源更新消息;其中,资源更新消息是在管理端完成对应的资源更新操作后,向消息队列中发送的消息,资源更新结果和资源更新消息用于表征资源更新前后的信息;
更新单元,用于结合资源更新结果和资源更新消息对预设的ES索引中对应的资源信息进行更新。
可选地,资源更新结果中包含第一更新时间戳,资源更新消息中包含第二更新时间戳,更新单元包括:
确定子单元,用于根据第一更新时间戳和第二更新时间戳在资源更新结果和资源更新消息中确定最新更新信息;
更新子单元,用于根据最新更新信息对预设的ES索引中对应的资源信息进行更新。
可选地,更新子单元还用于:
对最新更新信息进行解析,得到解析后的更新信息;
根据解析后的更新信息确定目标资源类型;
采用枚举值的方法将解析后的更新信息同步至预设的ES索引中目标资源类型所对应的位置。
可选地,第二获取模块包括:
第二获取单元,用于获取账号信息和用户请求信息;其中,用户请求信息包括:待更新资源的资源类型信息,待更新资源的更新操作信息;
确定单元,用于根据账号信息在预设账号权限映射关系中确定账号信息所对应的目标权限;
判断单元,用于判断用户请求信息是否属于目标权限;
第一设定单元,如果属于目标权限,则将账号信息和用户请求信息作为更新资源请求;
第二设定单元,用于如果不属于目标权限,则用户请求信息无效。
可选地,消息队列为RabbitMQ;
更新资源请求包括:增加资源的请求、删除资源的请求、更改资源的请求;
预设的ES索引为非关系型的nosql数据库。
该实施例二中的具体内容可参考上述实施例一中的描述,在此不再赘述。
实施例三:
本发明实施例提供了一种电子设备,参考图8,该电子设备包括:处理器30,存储器31,总线32和通信接口33,处理器30、通信接口33和存储器31通过总线32连接;处理器30用于执行存储器31中存储的可执行模块,例如计算机程序。处理器执行极端及程序时实现如方法实施例中描述的方法的步骤。
其中,存储器31可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口33(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线32可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器31用于存储程序,处理器30在接收到执行指令后,执行程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器30中,或者由处理器30实现。
处理器30可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器30中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器30可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器31,处理器30读取存储器31中的信息,结合其硬件完成上述方法的步骤。
实施例四:
一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行实施例一中的方法。
本发明实施例所提供的资源数据读取的方法、装置、电子设备和计算机可读介质,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种资源数据读取的方法,其特征在于,应用于OPENAPI,所述方法包括:
获取资源查询请求;其中,所述资源查询请求包括子账号信息和待查询资源信息,所述待查询资源信息包括:待查询资源的资源ID;
基于所述资源查询请求在预设的ES索引中获取与所述子账号信息所对应的目标资源信息;其中,所述预设的ES索引中包含有多个子账号信息以及与每个子账号信息对应的资源信息,所述目标资源信息为分别与所述子账号信息和所述待查询资源信息相匹配的资源信息,所述预设的ES索引能够同步管理端的资源信息;
将所述目标资源信息反馈至控制台;
在获取资源查询请求之前,所述方法还包括通过以下方法对所述预设的ES索引进行更新:
获取更新资源请求,其中,所述更新资源请求中携带有账号信息;
根据所述更新资源请求调用管理端接口,以使管理端执行资源更新操作;
在所述管理端完成所述资源更新操作后,对所述预设的ES索引中对应的资源信息进行更新,并将所述预设的ES索引的更新结果返回至所述控制台;其中,所述更新结果包括以下任一种:更新成功的结果,更新失败的结果;
其中,对所述预设的ES索引中对应的资源信息进行更新包括:
接收所述管理端执行所述资源更新操作后返回的资源更新结果,其中,所述资源更新结果中包含第一更新时间戳;
获取消息队列中的资源更新消息;其中,所述资源更新消息是在所述管理端完成对应的资源更新操作后,向所述消息队列中发送的消息,所述资源更新结果和所述资源更新消息用于表征资源更新前后的信息,所述资源更新消息中包含第二更新时间戳;
根据所述第一更新时间戳和所述第二更新时间戳在所述资源更新结果和所述资源更新消息中确定最新更新信息;
根据所述最新更新信息对所述预设的ES索引中对应的资源信息进行更新。
2.根据权利要求1所述的方法,其特征在于,在获取资源查询请求之后,在基于所述资源查询请求在预设的ES索引中获取与所述子账号信息所对应的目标资源信息之前,所述方法还包括:
对所述资源查询请求进行权限校验,其中,当校验通过时,则基于所述资源查询请求在所述预设的ES索引中获取与所述子账号信息所对应的目标资源信息。
3.根据权利要求1所述的方法,其特征在于,根据所述最新更新信息对所述预设的ES索引中对应的资源信息进行更新包括:
对所述最新更新信息进行解析,得到解析后的更新信息;
根据所述解析后的更新信息确定目标资源类型;
采用枚举值的方法将所述解析后的更新信息同步至所述预设的ES索引中所述目标资源类型所对应的位置。
4.根据权利要求1所述的方法,其特征在于,获取更新资源请求包括:
获取账号信息和用户请求信息;其中,所述用户请求信息包括:待更新资源的资源类型信息,所述待更新资源的更新操作信息;
根据所述账号信息在预设账号权限映射关系中确定所述账号信息所对应的目标权限;
判断所述用户请求信息是否属于所述目标权限;
如果属于所述目标权限,则将所述账号信息和所述用户请求信息作为所述更新资源请求;
如果不属于所述目标权限,则所述用户请求信息无效。
5.根据权利要求1所述的方法,其特征在于,
所述消息队列为RabbitMQ;
所述更新资源请求包括:增加资源的请求、删除资源的请求、更改资源的请求;
所述预设的ES索引为非关系型的nosql数据库。
6.一种资源数据读取的装置,其特征在于,应用于OPENAPI,所述装置包括:
第一获取模块,用于获取资源查询请求;其中,所述资源查询请求包括子账号信息和待查询资源信息,所述待查询资源信息包括:待查询资源的资源ID;
读取模块,用于基于所述资源查询请求在预设的ES索引中获取与所述子账号信息所对应的目标资源信息;其中,所述预设的ES索引中包含有多个子账号信息以及与每个子账号信息对应的资源信息,所述目标资源信息为分别与所述子账号信息和所述待查询资源信息相匹配的资源信息,所述预设的ES索引能够同步管理端的资源信息;
反馈模块,用于将所述目标资源信息反馈至控制台;
第二获取模块,用于获取更新资源请求,其中,所述更新资源请求中携带有账号信息;
调用模块,用于根据所述更新资源请求调用管理端接口,以使管理端执行资源更新操作;
更新模块,用于在所述管理端完成所述资源更新操作后,对所述预设的ES索引中对应的资源信息进行更新,并将所述预设的ES索引的更新结果返回至所述控制台;其中,所述更新结果包括以下任一种:更新成功的结果,更新失败的结果;
其中,所述更新模块包括:
接收单元,用于接收所述管理端执行所述资源更新操作后返回的资源更新结果,其中,所述资源更新结果中包含第一更新时间戳;
第一获取单元,用于获取消息队列中的资源更新消息;其中,所述资源更新消息是在所述管理端完成对应的资源更新操作后,向所述消息队列中发送的消息,所述资源更新结果和所述资源更新消息用于表征资源更新前后的信息,所述资源更新消息中包含第二更新时间戳;
确定子单元,用于根据所述第一更新时间戳和所述第二更新时间戳在所述资源更新结果和所述资源更新消息中确定最新更新信息;
更新子单元,用于根据所述最新更新信息对所述预设的ES索引中对应的资源信息进行更新。
7.根据权利要求 6所述的装置,其特征在于,所述装置还包括:
权限校验模块,用于对所述资源查询请求进行权限校验,其中,当校验通过时,则基于所述资源查询请求在所述预设的ES索引中获取与所述子账号信息所对应的目标资源信息。
8.根据权利要求6所述的装置,其特征在于,所述更新子单元还用于:
对所述最新更新信息进行解析,得到解析后的更新信息;
根据所述解析后的更新信息确定目标资源类型;
采用枚举值的方法将所述解析后的更新信息同步至所述预设的ES索引中所述目标资源类型所对应的位置。
9.根据权利要求6所述的装置,其特征在于,所述第二获取模块包括:
第二获取单元,用于获取账号信息和用户请求信息;其中,所述用户请求信息包括:待更新资源的资源类型信息,所述待更新资源的更新操作信息;
确定单元,用于根据所述账号信息在预设账号权限映射关系中确定所述账号信息所对应的目标权限;
判断单元,用于判断所述用户请求信息是否属于所述目标权限;
第一设定单元,如果属于所述目标权限,则将所述账号信息和所述用户请求信息作为所述更新资源请求;
第二设定单元,用于如果不属于所述目标权限,则所述用户请求信息无效。
10.根据权利要求6所述的装置,其特征在于,
所述消息队列为RabbtiMQ;
所述更新资源请求包括:增加资源的请求、删除资源的请求、更改资源的请求;
所述预设的ES索引为非关系型的nosql数据库。
11.一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至5任一项所述的方法。
12.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811372302.6A CN109471870B (zh) | 2018-11-16 | 2018-11-16 | 资源数据读取的方法、装置、电子设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811372302.6A CN109471870B (zh) | 2018-11-16 | 2018-11-16 | 资源数据读取的方法、装置、电子设备和计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109471870A CN109471870A (zh) | 2019-03-15 |
CN109471870B true CN109471870B (zh) | 2021-07-20 |
Family
ID=65673741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811372302.6A Active CN109471870B (zh) | 2018-11-16 | 2018-11-16 | 资源数据读取的方法、装置、电子设备和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109471870B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202317A (zh) * | 2014-08-26 | 2014-12-10 | 四川九成信息技术有限公司 | 云平台数据管理的方法和系统 |
CN104754001A (zh) * | 2013-12-30 | 2015-07-01 | 方正宽带网络服务股份有限公司 | 云存储系统和数据存储方法 |
CN107104931A (zh) * | 2016-02-23 | 2017-08-29 | 中兴通讯股份有限公司 | 一种访问控制方法及平台 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007052334A1 (de) * | 2006-12-19 | 2008-06-26 | teravolt GbR (vertretungsberechtigter Gesellschafter: Oliver Koch, 20255 Hamburg) | Verfahren und Vorrichtung zur Auswahl von charakterisierbaren Datensätzen |
CN101562621B (zh) * | 2009-05-25 | 2013-05-22 | 阿里巴巴集团控股有限公司 | 一种用户授权的方法、系统和装置 |
CN104284297B (zh) * | 2013-07-11 | 2018-12-25 | 华为终端有限公司 | 一种资源迁移的方法、装置 |
CN104091228A (zh) * | 2014-06-17 | 2014-10-08 | 北京邮电大学 | 物联网资源管理、注册、查询和语义库管理系统 |
US10360264B2 (en) * | 2016-04-08 | 2019-07-23 | Wmware, Inc. | Access control for user accounts using a bidirectional search approach |
CN107544999B (zh) * | 2016-06-28 | 2022-10-21 | 百度在线网络技术(北京)有限公司 | 用于检索系统的同步装置及同步方法、检索系统及方法 |
CN106202455A (zh) * | 2016-07-14 | 2016-12-07 | 星云纵横(北京)大数据信息技术有限公司 | 一种实现多行业数据切换查询的数据查询系统及方法 |
CN107403306A (zh) * | 2017-07-31 | 2017-11-28 | 广西科技大学 | 一种基于SpringBoot的高校社团管理系统 |
-
2018
- 2018-11-16 CN CN201811372302.6A patent/CN109471870B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104754001A (zh) * | 2013-12-30 | 2015-07-01 | 方正宽带网络服务股份有限公司 | 云存储系统和数据存储方法 |
CN104202317A (zh) * | 2014-08-26 | 2014-12-10 | 四川九成信息技术有限公司 | 云平台数据管理的方法和系统 |
CN107104931A (zh) * | 2016-02-23 | 2017-08-29 | 中兴通讯股份有限公司 | 一种访问控制方法及平台 |
Non-Patent Citations (1)
Title |
---|
你知道Change Data Capture是什么吗?;Stray Episode;《https://farer.org/2018/07/27/change-data-capture/》;20180827;第1-8页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109471870A (zh) | 2019-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10536456B2 (en) | Method and system for identifying user information in social network | |
WO2019109518A1 (zh) | 一种数据列表的上传方法及其终端 | |
CN112671950B (zh) | 基于区块链的域名处理方法、装置、电子设备和存储介质 | |
JP2019506764A (ja) | グローバル情報を取得、処理および更新するためのシステムおよび方法 | |
CN110968478A (zh) | 日志采集方法、服务器及计算机存储介质 | |
CN110737719A (zh) | 数据同步方法、装置、设备及计算机可读存储介质 | |
CN111143410A (zh) | 住宿治安管理方法、装置及系统 | |
CN108038127B (zh) | 一种数据同步的方法、装置、终端设备及存储介质 | |
CN112559525B (zh) | 数据检查系统、方法、装置和服务器 | |
CN109471870B (zh) | 资源数据读取的方法、装置、电子设备和计算机可读介质 | |
CN111639087B (zh) | 数据库中数据更新方法、装置和电子设备 | |
CN114185867A (zh) | 确认数据一致性的方法、装置和电子设备 | |
CN110532254A (zh) | 融合数据表的方法和装置 | |
CN112181822A (zh) | 一种测试方法和应用程序的启动耗时测试方法 | |
CN108647139B (zh) | 系统的测试方法、装置、存储介质及电子装置 | |
CN114153910A (zh) | 数据采集方法、装置及电子装置、计算机程序产品 | |
CN107908629B (zh) | 一种信息查询方法、终端以及设备 | |
CN109656936A (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
CN116737764A (zh) | 数据同步的方法和装置、电子设备和存储介质 | |
CN112181796B (zh) | 信息采集方法、装置、服务器及存储介质 | |
CN107526530B (zh) | 数据处理方法和设备 | |
CN112199529A (zh) | 图片处理方法、装置、电子设备及存储介质 | |
US10374893B1 (en) | Reactive non-blocking input and output for target device communication | |
CN105989021A (zh) | 一种文件处理方法和装置 | |
CN107679093B (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 |