一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种微服务架构智能数据库分析适配方法与流程

2022-03-09 10:28:45 来源:中国专利 TAG:
1.本发明涉及兼容适配
技术领域
:,尤其涉及一种微服务架构智能数据库分析适配方法。
背景技术
::2.基于信创环境微服务架构的软件系统已经在很多地区投入使用。3.随着前期试点项目的顺利上线证明信创环境是可行、可靠、好用的,后续将会有更多类型的软件系统迁移到信创环境,参与进来的单位和公司将会越来越多,鉴于信创环境下性能、兼容性等问题,新参与进来的建设单位和公司并没有相关经验,而网上的相关经验分享还非常稀缺,这样将会严重拖慢工程进度且不断重复造车造成资源浪费。技术实现要素:4.为了解决以上技术问题,本发明提供了一种基于国产cpu和操作系统的微服务架构智能数据库分析适配方法。5.自动分析数据库类型及版本信息,然后将获取的信息存入redis或系统缓存中,同时可由运维人员将数据库识别特征维护到数据库检测与适配系统中,后续系统将通过这些新识别特征更准确识别数据库,随后通过自动抓取过滤业务系统报错信息,通过智能算法系统分析出问题并给出解决方案。6.本发明的技术方案是:7.一种微服务架构智能数据库分析适配方法,当数据库检测与适配系统检测到不兼容sql时,定位到有问题的代码位置,自动分析生成以java语言形成的一套解决方案,按照生成的解决方案将代码融入到业务代码后工具将读取缓存中的数据库信息,自动补全sql语句进行执行,从而实现一步操作解决数据库兼容问题。8.进一步的,9.设置dbadapter数据库适配工具,以jar包形式运行在系统中,通过对数据库驱动jar包的分析将识别的信息,存放到系统缓存或redis缓存中供后续程序运行使用,该工具每次在启动应用时运行进行自动检测。10.再进一步的,11.1)数据库识别12.在分布式场景下,各个应用微服务上都增加了一个数据库识别模块,这个数据库识别模块负责识别本微服务上的数据库类型或版本信息并将信息存入redis缓存中,运维可通过数据库检测与适配系统后台管理界面配置扩展,如果需要有新数据库需要适配则可将数据库识别特征维护到数据库检测与适配系统中,后续系统将通过这些新识别特征更准确识别数据库。13.2)数据库交互信息收集14.在分布式场景下,各个业务系统上都增加了一个数据库交互信息采集模块,采集端使用filebeat;数据库交互信息过滤、清洗采用的是logstreams流处理服务,logstreams服务引入了过滤器,过滤没有价值的数据,采用kafkastreams作为etl流处理实现动态过滤清洗;通过界面化配置实现动态过滤清洗的规则如下:15.2.1)、界面化配置采集策略;默认error级别的数据库交互信息全量采集;16.2.2)、以错误时间点为中心,在流处理中开窗,辐射上下可配的n时间点采集非error级别数据库交互信息,默认只采info级别;17.2.3)、按业务需求实时统计业务sql;18.2.4)、高峰时段按业务类型的权重指标、数据库交互信息等级指标、每个服务在一个时段内数据库交互信息最大限制量指标、时间段指标清洗过滤数据库交互信息,根据不同的时间段动态收缩时间窗口。19.3)数据库交互信息分析20.logstashindexer负责从kafka拉取数据库交互信息,进行从原始数据到elasticsearch所要求的数据格式的转换;从数据库交互信息中抓取关键字,判断出应该写入到elasticsearch的哪个index中,并将信息存入对应的index,同时集成智能深度分析算法,可同时生成java和xml两种语言解决方案及报错位置,可应对sql和orm两种形式数据库持久化框架,维护到代码中即可,运维可通过数据库检测与适配系统后台管理界面化配置扩展sql语法和orm语法,后台管理页面以数据库类型、版本分类维护不同的sql语法和orm语法。21.4)sql形式操作数据库适配22.系统业务代码在进行数据库持久化操作时,将数据库检测与适配系统生成的java代码维护到业务代码中,dbadapter数据库适配工具将这些java代码解析成兼容对应数据库的sql语句。23.5)orm形式操作数据库适配24.原系统业务代码进行数据库持久化操作时,orm形式操作数据库适配采用propertiesfactorybean进行数据库持久化操作适配,采用databaseidprovider配置数据库映射,结合数据库检测与适配系统当检测到数据库不兼容时自动生成xml语句,将生成的xml语句维护到业务代码中通过识别databaseid实现数据库适配。25.6)数据库交互优化26.集成数据库智能深度分析、性能优化功能,检测一个时间段内sql的查询频率和查询时间超长sql并记录预警,可为dba提供优化数据库的依据。27.7)数据库检测与适配系统展示28.界面使用web页面方式,前端采用的是angularjs,后端采用的是springboot;拆分了几个界面专门做展示微服务,该微服务在web界面中开发集成了数据库特征设置、sql语法设置、orm语法设置、数据库兼容性问题日志查询、数据库预警日志查询。29.数据库交互信息的采集功能可支持筛选,可以根据配置的采集级别对信息进行过滤,可以根据关键词自定义要采集哪些内容的信息,后续根据需求可以二次扩展。30.可依据sql/orm语法算法库,充分考虑了信创环境下各数据库神通、金仓、达梦等数据库语法不同问题,智能算法会依据当前使用的数据库自动生成对应正确的java和xml语句解决方案以分别应对sql或orm形式数据库持久化框架。31.支持sql优化提取,针对某个特定业务服务按业务需求实时统计业务sql,比如:会检测某时间段内sql的查询频率和查询时间超长sql并记录预警,可为dba提供优化数据库的依据,如按查询的sql创建索引。32.本发明充分考虑到信创环境下性能及兼容性问题,对于微服务架构系统由非信创数据库迁移到信创数据库起到了很好的辅助作用,具有良好的通用性、移植性和扩展性。附图说明33.图1是本发明的工作流程示意图;34.图2是本发明的架构示意图。具体实施方式35.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。36.本发明所述方法设置databaseautodiscern数据库自动识别工具进行数据库识别,此工具为jar包形式运行在系统中,通过对数据库驱动jar包的分析将识别的信息,如数据库类型、版本信息等存放到系统缓存或redis缓存中供后续程序运行使用,该工具每次在启动应用时运行进行自动检测。37.本发明所述方法通过自研dbadapter数据库适配工具进行sql形式数据库持久化操作适配,此工具为jar包形式运行在系统中,当数据库检测与适配系统检测到不兼容sql时,定位到有问题的代码位置,通过深度分析算法生成以java语言形成的一套解决方案,按照算法生成的解决方案将代码融入到业务代码后工具将读取缓存中的数据库信息,算法将自动补全sql语句进行执行,从而实现一步操作解决数据库兼容问题,例如业务代码中有一段查询语句以时间为查询条件,要求查询某一时间段的数据,众所周知各数据库关于时间的比较语法不尽相同,算法将生成java代码“dbadapterfactory.getdbadapter().getsq1fordate(fieldname:update_time",symbol:"》=",time))”,将该段代码由开发人员维护到业务代码中由dbadapter进行解析即可完成适配,以上为一个简单的例子借此说明其处理机制。其它问题解决方案大概如此,目前支持较为复杂问题处理,可支持二次扩展,只要算法、脚本成熟处理的问题也将日趋复杂。38.本发明所述方法中实施流程如下:39.(1)数据库识别40.在分布式场景下,各个应用微服务上都增加了一个数据库识别模块,这个数据库识别模块负责识别本微服务上的数据库类型或版本等信息并将信息存入redis缓存中,运维可通过我们的数据库检测与适配系统后台管理界面配置扩展,如果需要有新数据库需要适配则可将数据库识别特征维护到数据库检测与适配系统中,后续系统将通过这些新识别特征更准确识别数据库。41.(2)数据库交互信息收集42.在分布式场景下,各个业务系统上都增加了一个数据库交互信息采集模块,采集端我们使用filebeat。数据库交互信息过滤、清洗采用的是logstreams流处理服务,logstreams服务引入了过滤器,过滤没有价值的数据,技术我们采用kafkastreams作为etl流处理实现动态过滤清洗。通过界面化配置实现动态过滤清洗的规则如下:43.2.1)、界面化配置采集策略。默认error级别的数据库交互信息全量采集。44.2.2)、以错误时间点为中心,在流处理中开窗,辐射上下可配的n时间点采集非error级别数据库交互信息,默认只采info级别。45.2.3)、按业务需求实时统计业务sql,比如:会检测某时间段内sql的查询频率和查询时间超长sql进行记录和预警。46.2.4)、高峰时段按业务类型的权重指标、数据库交互信息等级指标、每个服务在一个时段内数据库交互信息最大限制量指标、时间段指标等动态清洗过滤数据库交互信息,根据不同的时间段动态收缩时间窗口。47.(3)数据库交互信息分析48.logstashindexer负责从kafka拉取数据库交互信息,进行从原始数据到elasticsearch所要求的数据格式的转换,比如日期格式转换为预定义的格式,某些字段的去除、字段的合并转换等;从数据库交互信息中抓取关键字,判断出应该写入到elasticsearch的哪个index中,并将信息存入对应的index,同时集成智能深度分析算法,可同时生成java和xml两种语言解决方案及报错位置,可应对sql和orm两种形式数据库持久化框架,由开发人员维护到代码中即可,运维可通过我们的数据库检测与适配系统后台管理界面化配置扩展sql语法和orm语法,后台管理页面以数据库类型、版本分类维护不同的sql语法和orm语法。49.(4)sql形式操作数据库适配50.原系统业务代码是通过jdbc或类似架构进行数据库持久化操作时,将数据库检测与适配系统生成的java代码维护到业务代码中,dbadapter数据库适配工具可将这些java代码解析成兼容对应数据库的sql语句,从而提高开发者开发效率和减少试错次数,目前支持拼装数据库字段类型为日期的查询sql语句getsqlfordate(stringfieldname,stringsymbol,objectobj)、拼装数据库字段类型为日期的预编译查询sql语句getpresqlfordate(stringfieldname,stringsymbol,objectobj)、设置clob类型的值setclob(preparedstatementps,intparameterindex,objectvalue)等。51.(5)orm形式操作数据库适配52.原系统业务代码是通过mybatis或类似架构进行数据库持久化操作时,orm形式操作数据库适配采用propertiesfactorybean进行数据库持久化操作适配,采用databaseidprovider配置数据库映射,结合数据库检测与适配系统当检测到数据库不兼容时自动生成xml语句,将生成的xml语句由开发人员维护到业务代码中通过识别databaseid实现数据库适配。我们以修改数据库字段长度为例,如果系统检测到此时使用的是金仓数据库则生成xml语句如下,将此段代码维护到业务代码中即可。53.1.《updateid="altertable"parametertype="java.lang.integer"databaseid="kingbase"》54.2.altertabletable_namealtercolumncolumn_nametypevarchar(${num})55.3.《/update》56.(6)数据库交互优化57.本系统集成了数据库智能深度分析、性能优化功能,会检测某时间段内sql的查询频率和查询时间超长sql并记录预警,可为dba提供优化数据库的依据,如按查询的sql创建索引。58.(7)数据库检测与适配系统展示59.本系统的界面使用了web页面方式,前端采用的是angularjs后端springboot。拆分了一个专门做展示微服务,该微服务在web界面中开发集成了数据库特征设置、sql语法设置、orm语法设置、数据库兼容性问题日志查询、数据库预警日志查询等。60.以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献