一种北向接口资源导出系统技术方案

技术编号:33444465 阅读:9 留言:0更新日期:2022-05-19 00:30
本发明专利技术公开了一种北向接口资源导出系统,包括多实例导出服务和统一的报表资源访问服务,所述多实例导出服务,用于根据不同的北向接口标准,导出不同的资源数据,生成文件、压缩文件、上传文件至云服务器;所述统一的报表资源访问服务,用于完成资源数据同步,转换为统一的数据模型持久化存储于本地数据库,并且保证数据实时性与后台数据的一致性。统一的北向资源访问模块在启动时,将后台服务数据、及设备状态数据同步至本地数据库中,并实时刷新本地资源数据;任务分派模块在接收到导出任务后,将导出任务根据不同资源类型分成不同的小任务,下发给不同的分布式多实例导出服务。避免了数据模型重复转换,提高了北向接口资源导出效率。出效率。出效率。

【技术实现步骤摘要】
一种北向接口资源导出系统


[0001]本专利技术属于通信
,更具体地,涉及一种北向接口资源导出系统。

技术介绍

[0002]随着我国5G商用的快速推进,对传输网的带宽要求也越来越大,因此,传输设备也变得越来越多。北向接口作为设备商网管与上层综合网管的统一访问接口,需要快速响应上层综合网管的所有请求,导出所有设备资源、业务资源,生成资源文件,上传至文件服务器,供上层综合网管刷新资源数据。
[0003]目前,北向接口导出一项资源需要从后台多个服务获取数据,再组建成一份符合北向接口标准的资源数据,导致资源文件生成耗时较长,上层综合网管无法及时刷新资源数据。同时,由于数据来自至于不同服务,数据的完整性不可控,后台某个服务运行不正常时,导致数据缺失。
[0004]北向接口资源导出服务使用多线程方案来提高资源生成效率,该方案对导出效率提升有限,尤其是对于网管集约化场景,管理的设备呈指数级增加,显得力不从心。单个服务器CPU资源、内存资源有限,总有达到极限的一天。同时,由于多个线程并发执行,占用的内存资源不可控,在大配置场景下,经常出现因内存无法分配导致系统崩溃。
[0005]由于北向接口导出数据来自至于不同服务,状态数据来至于设备,导致向后台服务、设备频繁发起大量RPC(Remote Procedure Call,远程过程调用)请求,后台服务、设备需对这些RPC请求作出响应,如果调用了一些查询较慢的RPC接口,会阻塞后台服务、设备的请求队列,导致新来的RPC请求无法及时响应。
[0006]北向接口资源数据直接来至于不同的后台服务,以及设备状态数据,导致北向接口资源导出性能严重依赖后台服务、设备的运行效率。后台服务、设备的一个很小改动,都可能影响应用层的查询效率。经常出现在一个版本完成资源导出效率优化后,在另一个开发版本导出效率仍然不达标。

技术实现思路

[0007]针对现有技术的以上缺陷或改进需求,本专利技术提供了一种北向接口资源导出系统,其目的在于将资源数据预先同步至本地数据库,减少RPC调用频次,同时使用分布式多实例来增加资源导出计算能力,由此解决全量资源导出慢,处理时间长的技术问题。
[0008]为实现上述目的,按照本专利技术的一个方面,提供了一种北向接口资源导出系统,包括多实例导出服务和统一的报表资源访问服务,其中:
[0009]所述多实例导出服务,用于根据不同的北向接口标准,导出不同的资源数据,生成文件、压缩文件、上传文件至云服务器;
[0010]所述统一的报表资源访问服务,用于完成资源数据同步,转换为统一的数据模型持久化存储于本地数据库,并且保证数据实时性与后台数据的一致性。
[0011]本专利技术的一个实施例中,所述多实例导出服务分为任务分派模块、导出总体框架
以及导出模型插件,其中:
[0012]所述任务分派模块,用于将接收到的导出任务按照不同资源类型拆分为不同的小任务,获取当前可用的导出服务实例,将这些小任务下发给这些可用的导出服务实例;
[0013]导出总体框架,用于在接收到任务分配模块下发的任务后,根据传入的北向接口标准类型、导出资源类型,加载不同的导出模型插件,根据当前的资源类型向统一的报表资源访问服务请求资源数据,并将请求到的资源数据放入数据队列中;转换线程组不断从数据队列中取数据,转换为符合当前标准的数据模型,接着将转换后的数据放入文件生成队列中,文件生成线程不断从队列中取数据,根据当前资源类型,将数据写入不同的文件中,等待数据查询线程、数据转换线程、文件生成线程任务完成后,将文件压缩并上传到云服务器中;
[0014]所述导出模型插件,用于将资源数据生成符合不同北向接口标准模型,所有导出模型插件实现遵循统一的接口定义,便于导出总体框架加载执行。
[0015]本专利技术的一个实施例中,所述统一的报表资源访问服务2由全量同步模块、增量同步模块、数据模型转换、以及资源查询模块组成,其中:
[0016]所述全量同步模块,用于检查本地缓存使用的数据模型与当前程序使用的数据模型是否一致,不一致则清空本地数据库缓存;向后台请求资源时标信息,同时获取本地缓存资源的时标信息,根据后台资源与本地资源的时标信息,计算出全量资源增加、修改、删除资源索引,并执行相应的增加、修改、删除操作;
[0017]所述增量同步模块,用于将接收到的消息关联转换函数,放入待转换队列中,数据转换线程将待转换数据转换为北向统一的数据模型,并序列化数据,同步至本地数据库中;
[0018]所述数据模型转换,用于完成资源数据模型转换,将全量同步模块、增量同步模块的资源数据转换为北向统一的资源数据,并转换为序列化数据;
[0019]所述资源查询模块,用于对各种资源查询提供统一的封装,并提供RPC接口供其它服务查询。
[0020]本专利技术的一个实施例中,所述全量同步模块在资源条目有时标信息时实现全量同步包括:
[0021]S2101:全量同步模块初始化:其中,包括初始化线程池和关联线程池运行函数;并且,初始化同步任务分派线程,关联分派工作函数,并初始化同步的资源类型列表;同步任务分派线程完成初始化后,扫描待同步的资源类型,依次加入线程池中,供线程池中各个空闲线程消费;若线程池中无空闲线程,则阻塞等待空闲线程;
[0022]S2102:服务启动时,检查数据模型是否变更:每个资源同步任务开始时,从本地数据库中随机加载该资源的一条数据,使用当前模型进行反序列化,如果反序列化成功,直接进入步骤S2103;反之反序列化不成功,则先清空当前资源本地数据库缓存;
[0023]S2103:获取后台资源与本地资源时标信息,计算增删改资源索引:向后台请求当前资源的时标信息,即每条子资源的更新时间;并且,从本地数据库中获取当前资源的所有资源时标信息;时标信息获取完成后,计算增删改资源索引,即遍历所有资源,比较后台时标信息与本地数据库存储的时标信息;如果当前资源索引在本地数据库中未找到,而后台存在,则为新增资源,加入新增资源列表中;如果当前资源索引在本地数据库能找到,但从后台获取的时标信息比本地数据库中的资源关联的时标信息新,则为需更新的资源,加入
更新列表中;如果当前资源索引无法从后台资源列表中找到,则证明该资源已经删除,加入到删除列表中;增删改资源索引计算完成后,根据计算出的删除资源索引,删除本地数据库中对应的资源;
[0024]S2104:计算资源同步模式,便于资源同步时采用不同的查询策略:首先,判断变更资源是否超过指定阈值;设增加资源数量为n
add
,修改资源为n
update
,当前资源类型全量资源数量为n,则阈值时,使用全量查询,即同步后台资源全量数据;反之,则使用增量查询,即根据步骤S2103计算出的增加、修改资源索引,下发增加、修改资源索引进行查询;
[0025]S2105:同步资源数据,完成数据模型转换:迭代查询增加、修改资源详细数据,该批次数据获取完成后,将查询到的资源本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种北向接口资源导出系统,其特征在于,包括多实例导出服务和统一的报表资源访问服务,其中:所述多实例导出服务,用于根据不同的北向接口标准,导出不同的资源数据,生成文件、压缩文件、上传文件至云服务器;所述统一的报表资源访问服务,用于完成资源数据同步,转换为统一的数据模型持久化存储于本地数据库,并且保证数据实时性与后台数据的一致性。2.如权利要求1所述的北向接口资源导出系统,其特征在于,所述多实例导出服务分为任务分派模块、导出总体框架以及导出模型插件,其中:所述任务分派模块,用于将接收到的导出任务按照不同资源类型拆分为不同的小任务,获取当前可用的导出服务实例,将这些小任务下发给这些可用的导出服务实例;导出总体框架,用于在接收到任务分配模块下发的任务后,根据传入的北向接口标准类型、导出资源类型,加载不同的导出模型插件,根据当前的资源类型向统一的报表资源访问服务请求资源数据,并将请求到的资源数据放入数据队列中;转换线程组不断从数据队列中取数据,转换为符合当前标准的数据模型,接着将转换后的数据放入文件生成队列中,文件生成线程不断从队列中取数据,根据当前资源类型,将数据写入不同的文件中,等待数据查询线程、数据转换线程、文件生成线程任务完成后,将文件压缩并上传到云服务器中;所述导出模型插件,用于将资源数据生成符合不同北向接口标准模型,所有导出模型插件实现遵循统一的接口定义,便于导出总体框架加载执行。3.如权利要求1或2所述的北向接口资源导出系统,其特征在于,所述统一的报表资源访问服务由全量同步模块、增量同步模块、数据模型转换、以及资源查询模块组成,其中:所述全量同步模块,用于检查本地缓存使用的数据模型与当前程序使用的数据模型是否一致,不一致则清空本地数据库缓存;向后台请求资源时标信息,同时获取本地缓存资源的时标信息,根据后台资源与本地资源的时标信息,计算出全量资源增加、修改、删除资源索引,并执行相应的增加、修改、删除操作;所述增量同步模块,用于将接收到的消息关联转换函数,放入待转换队列中,数据转换线程将待转换数据转换为北向统一的数据模型,并序列化数据,同步至本地数据库中;所述数据模型转换,用于完成资源数据模型转换,将全量同步模块、增量同步模块的资源数据转换为北向统一的资源数据,并转换为序列化数据;所述资源查询模块,用于对各种资源查询提供统一的封装,并提供RPC接口供其它服务查询。4.如权利要求3所述的北向接口资源导出系统,其特征在于,所述全量同步模块在资源条目有时标信息时实现全量同步包括:S2101:全量同步模块初始化:其中,包括初始化线程池和关联线程池运行函数;并且,初始化同步任务分派线程,关联分派工作函数,并初始化同步的资源类型列表;同步任务分派线程完成初始化后,扫描待同步的资源类型,依次加入线程池中,供线程池中各个空闲线程消费;若线程池中无空闲线程,则阻塞等待空闲线程;S2102:服务启动时,检查数据模型是否变更:每个资源同步任务开始时,从本地数据库中随机加载该资源的一条数据,使用当前模型进行反序列化,如果反序列化成功,直接进入步骤S2103;反之反序列化不成功,则先清空当前资源本地数据库缓存;
S2103:获取后台资源与本地资源时标信息,计算增删改资源索引:向后台请求当前资源的时标信息,即每条子资源的更新时间;并且,从本地数据库中获取当前资源的所有资源时标信息;时标信息获取完成后,计算增删改资源索引,即遍历所有资源,比较后台时标信息与本地数据库存储的时标信息;如果当前资源索引在本地数据库中未找到,而后台存在,则为新增资源,加入新增资源列表中;如果当前资源索引在本地数据库能找到,但从后台获取的时标信息比本地数据库中的资源关联的时标信息新,则为需更新的资源,加入更新列表中;如果当前资源索引无法从后台资源列表中找到,则证明该资源已经删除,加入到删除列表中;增删改资源索引计算完成后,根据计算出的删除资源索引,删除本地数据库中对应的资源;S2104:计算资源同步模式,便于资源同步时采用不同的查询策略:首先,判断变更资源是否超过指定阈值;设增加资源数量为n
add
,修改资源为n
update
,当前资源类型全量资源数量为n,则阈值时,使用全量查询,即同步后台资源全量数据;反之,则使用增量查询,即根据步骤S2103计算出的增加、修改资源索引,下发增加、修改资源索引进行查询;S2105:同步资源数据,完成数据模型转换:迭代查询增加、修改资源详细数据,该批次数据获取完成后,将查询到的资源数据关联模型转换函数;并且,将关联了转换函数的数据放入待转换数据队列中,进行数据模型转换;接着,通过判断迭代查询是否还有下一批次数据,判断当前资源类型是否同步完成;数据还没同步完成,循环迭代查询下一批次数据;反之,直接进入步骤S2106,结束同步资源数据;S2106:订阅后台资源上报主题:所有资源都同步完成后,订阅后台资源上报主题,便于实时接收后台资源数据上报。5.如权利要求4所述的北向接口资源导出系统,其特征在于,所述数据模型转换在资源条目有时标信息时对S2105队列中的数据进行数据模型转换包括:S2301:数据模型转换初始化;S2302:取资源数据,完成...

【专利技术属性】
技术研发人员:王培成姚志伟
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:

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

1