System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据源适配,尤其涉及一种基于轻量化平台的数据源动态适配方法及系统。
技术介绍
1、在业务系统多元化的情况下,对数据处理、数据应用的需求和系统越来越多,对接动态多数据源需解决数据库语法不一致,驱动动态加载、驱动动态扩展的问题,开发过程复杂且易出错。
2、现有技术中,cn109299150a公开了一种可配置多数据源适配规则引擎解决方法,包括步骤为:配置多数据源、根据配置的多数据源,配置出活动的规则数、规则上线生效后,由用户行为产生事件mq触发规则的运行、根据规则结果判断执行行为。
3、cn108846118a公开了一种智能适配多数据源的实现方法,涉及数据源处理的
,包括以下步骤:步骤1.配置数据源的关键信息;步骤2.根据需操控的数据源的关键信息定义调用方法的方法名;步骤3.将调用方法的方法名和数据源的关键信息进行匹配,根据匹配结果确定该调用方法使用的数据源。
4、综上,现有技术虽然能够实现对多数据源的适配,但无法根据访问需求自动适配,需要人工调整选项和编码,因此需要一种自动适配数据源的方案解决现有技术中存在的不足。
技术实现思路
1、本专利技术实施例提供一种基于轻量化平台的数据源动态适配方法及系统,用于基于用户访问需求对不同数据源进行实时适配并访问数据库和提取数据。
2、本专利技术实施例的第一方面,提供一种基于轻量化平台的数据源动态适配方法,包括:
3、获取用户需求,动态加载配置类,通过数据源解析器基于所述
4、根据所述最优适配方案,在前端对后端访问时引入责任链机制,对于后端中的每个拦截器,设置对应的拦截器责任,通过预先引入的上下文对象判断是否需要进行拦截,并根据所述数据库的访问请求进行调用,获取数据库访问许可;
5、根据所述数据库访问许可,通过动态管理算法生成数据库管理规则,通过所述数据库管理规则获取所述数据库中的数据源,并对所述数据库中的数据源进行查询和编辑,若查询到对应的所述分库标志,则返回所述分库标志对应的数据库数据。
6、在一种可选的实施方式中,
7、所述获取用户需求,动态加载配置类,通过数据源解析器基于所述用户需求生成对应的数据适配器包括:
8、根据用户需求获取需要访问的数据库,生成配置类并创建配置管理器,根据所述配置管理器进行事件监听,若配置文件发生变化,则重新加载配置文件并更新所述配置类;
9、根据更新后的配置类,选择数据源解析器,所述数据源解析器获取所述配置类中每个配置项的动态参数,根据所述动态参数确定所述数据适配器每个接口对应的参数,生成数据适配器,并将所述数据适配器通过配置文件注册到系统中。
10、在一种可选的实施方式中,
11、所述根据所述数据适配器获取数据库对应的原地址和数据库密码,通过数据源适配算法对所述数据库中的厂商数据资料进行适配,创建分库标志并生成适配方案包括:
12、根据所述数据适配器,获取与所述用户需求匹配的数据库对应的数据库地址和数据库密码,根据所述数据库地址和所述数据库密码,基于数据源适配算法生成目标函数,将所述数据库地址和所述数据库密码作为所述目标函数的优化目标;
13、随机生成初始适配方案作为所述目标函数的初始解,并设置所述初始适配方案对应的初始温度,降低所述初始温度,对于每个不同的温度,根据所述初始适配方案进行邻域搜索,若存在新的适配方案优于所述初始适配方案,则替换所述初始适配方案,并重复进行搜索,直至搜索完成,并将搜索完成时的适配方案记为最优适配方案,将所述最优适配方案对应的数据库记为需求分库,生成对应的分库标志。
14、在一种可选的实施方式中,
15、所述根据所述最优适配方案,在前端对后端访问时引入责任链机制,对于后端中的每个拦截器,设置对应的拦截器责任,通过预先引入的上下文对象判断是否需要进行拦截,并根据所述数据库访问请求进行调用,获取数据库访问许可包括:
16、根据所述最优适配方案,前端对后端进行数据访问,所述后端中的服务控制层通过拦截器对所述数据访问进行拦截,根据所述责任链机制对所述后端中的每一个拦截器设置对应的拦截器责任,根据所述拦截器责任将所述拦截器根据执行顺序连接,形成有机责任链;
17、根据所述有机责任链,当得到数据库访问请求时,从所述有机责任链的头部开始执行第一个拦截器的处理逻辑,并根据对应的拦截器责任判断是否终止请求或将请求传递至下一个拦截器,直至所有拦截器都被执行或所述数据库访问请求被拦截;
18、若所述数据库访问请求被拦截,则根据产生拦截的拦截器生成对应的返回数据,若所有拦截器执行完毕且未产生拦截,则根据所述数据库访问请求生成数据库访问许可。
19、在一种可选的实施方式中,
20、所述有机责任链还包括拦截器动态管理方案:
21、根据所述拦截器动态管理方案在所述有机责任链中生成拦截器接口,并在所述拦截器接口上设置拦截器管理器,所述拦截器管理器根据所述用户需求,判断所述用户需求的进入点、退出点和拦截器执行顺序;
22、根据所述进入点和退出点,删除所述有机责任链中位于所述进入点之前的拦截器和位于所述退出点之后的拦截器,根据所述拦截器执行顺序,获取拦截器列表并在特定位置添加或删除拦截器。
23、在一种可选的实施方式中,
24、所述根据所述数据库访问许可,通过动态管理算法生成数据库管理规则,通过所述数据库管理规则获取所述数据库中的数据源,并对所述数据库中的数据源进行查询和编辑,若查询到对应的所述分库标志,则返回所述分库标志对应的数据库数据包括:
25、根据所述数据库访问许可,获取所述数据库对应的配置类,通过预先引入的动态管理算法结合系统中数据库的访问频率,访问时间窗口和访问数据量限制,为所述配置类中的每个配置项设置对应的初始配置规则;
26、根据所述初始配置规则,获取历史访问数据,根据所述动态管理算法中的性能优化模型结合所述历史访问数据对数据库性能进行预测,得到性能预测结果,根据所述性能预测结果优化所述初始配置规则并添加对应的生效条件,得到最优配置规则,重复操作直至达到预设的迭代次数;
27、汇总每个配置项对应的最优配置规则,生成所述数据库管理规则,根据所述数据库管理规则,所述后端调取所述数据库中的数据源,根据所述数据源,查询所述数据源是否包含预先设置的分库标志,若包含,则返回所述分库标志对应的数据库数据,若不包含,则返回空的查询结果。
28、在一种可选的实施方式中,
29、所述通过预先引入的动态管理算法结合系统中数据库的访问权限,访问时间窗口和访问数据量限制,为所述配置类中的每个配置项设置对应的初始配置规本文档来自技高网...
【技术保护点】
1.一种基于轻量化平台的数据源动态适配方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述获取用户需求,动态加载配置类,通过数据源解析器基于所述用户需求生成对应的数据适配器包括:
3.根据权利要求1所述的方法,其特征在于,所述根据所述数据适配器获取数据库对应的原地址和数据库密码,通过数据源适配算法对所述数据库中的厂商数据资料进行适配,创建分库标志并生成适配方案包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述最优适配方案,在前端对后端访问时引入责任链机制,对于后端中的每个拦截器,设置对应的拦截器责任,通过预先引入的上下文对象判断是否需要进行拦截,并根据所述数据库访问请求进行调用,获取数据库访问许可包括:
5.根据权利要求4所述的方法,其特征在于,所述有机责任链还包括拦截器动态管理方案:
6.根据权利要求1所述的方法,其特征在于,所述根据所述数据库访问许可,通过动态管理算法生成数据库管理规则,通过所述数据库管理规则获取所述数据库中的数据源,并对所述数据库中的数据源进行查询和编辑,若查询到对应
7.根据权利要求6所述的方法,其特征在于,所述通过预先引入的动态管理算法结合系统中数据库的访问权限,访问时间窗口和访问数据量限制,为所述配置类中的每个配置项设置对应的初始配置规则包括:
8.一种基于轻量化平台的数据源动态适配系统,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至7中任意一项所述的方法。
...【技术特征摘要】
1.一种基于轻量化平台的数据源动态适配方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述获取用户需求,动态加载配置类,通过数据源解析器基于所述用户需求生成对应的数据适配器包括:
3.根据权利要求1所述的方法,其特征在于,所述根据所述数据适配器获取数据库对应的原地址和数据库密码,通过数据源适配算法对所述数据库中的厂商数据资料进行适配,创建分库标志并生成适配方案包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述最优适配方案,在前端对后端访问时引入责任链机制,对于后端中的每个拦截器,设置对应的拦截器责任,通过预先引入的上下文对象判断是否需要进行拦截,并根据所述数据库访问请求进行调用,获取数据库访问许可包括:
5.根据权利要求4所述的方法,其特征在于,所述有机责任链还包括拦截器动态...
【专利技术属性】
技术研发人员:吴浩然,朱晶晶,黄永洋,
申请(专利权)人:冠骋信息技术苏州有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。