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

数据访问方法、装置、电子设备及计算机存储介质与流程

2022-11-13 10:47:59 来源:中国专利 TAG:


1.本技术属于信息技术it应用领域,尤其涉及一种数据访问方法、装置、电子设备及计算机存储介质。


背景技术:

2.现网业务运营支撑系统(business and operation support system,boss)计费帐务系统java应用程序(如解耦、刷新等)具有直连到物理数据库或者内存数据库取有关用户资料数据、帐务数据的能力,但是在业务较忙导致应用程序与数据库连接数超多,导致系统性能严重影响的问题无法解决。
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.可选的,装置还包括:
30.适配模块,用于基于数据访问引擎服务端的功能服务接口,适配客户端的功能服务接口。
31.可选的,获取模块,用于:根据数据访问请求,确定数据访问请求对应的目标数据库;从目标数据库中获取目标数据。
32.可选的,目标数据库包括内存数据库、物理数据库中的至少一种。
33.可选的,装置还包括:
34.切换模块,用于在目标数据库发生故障的情况下,切换至其他正常数据库。
35.第三方面,本技术实施例提供了一种电子设备,电子设备包括:处理器以及存储有计算机程序指令的存储器;
36.处理器执行计算机程序指令时实现如第一方面所示的数据访问方法。
37.第四方面,本技术实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面所示的数据访问方法。
38.本技术实施例的数据访问方法、装置、电子设备及计算机存储介质,能够提高系统性能。该数据访问方法,应用于预设的数据访问引擎服务端,包括:接收各个客户端发送的数据访问请求;根据数据访问请求,获取数据访问请求对应的目标数据;向客户端发送目标数据。可见,该方法通过预设的数据访问引擎服务端作为数据访问层,统一管理数据库访问服务,能够提高系统性能。
附图说明
39.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1是现有技术中的系统连接示意图;
41.图2是本技术一个实施例提供的系统连接示意图;
42.图3是本技术一个实施例提供的数据访问方法的流程示意图;
43.图4是本技术一个实施例提供的系统实现架构示意图;
44.图5是本技术一个实施例提供的数据访问装置的结构示意图;
45.图6是本技术一个实施例提供的电子设备的结构示意图。
具体实施方式
46.下面将详细描述本技术的各个方面的特征和示例性实施例,为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本技术进行进一步详细
描述。应理解,此处所描述的具体实施例仅意在解释本技术,而不是限定本技术。对于本领域技术人员来说,本技术可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本技术的示例来提供对本技术更好的理解。
47.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
48.现网业务运营支撑系统(business and operation support system,boss)计费帐务系统java应用程序(如解耦、刷新等)具有直连到物理数据库或者内存数据库取有关用户资料数据、帐务数据的能力,但是在业务较忙导致应用程序与数据库连接数超多,导致系统性能严重影响的问题无法解决。
49.目前发现基于java类应用程序(如用户资料解耦、刷新进程)连接访问物理或内存数据库,当业务繁忙时容易导致数据库访问连接数超多,数据库i/o性能下降幅度较大,相关解耦刷新进程无法按正常速度处理相关任务的问题。
50.现网java应用都拥有各自独立配置文件,在访问数据库时候,都是建立独立的连接,当数据库异常情况下发生切换,部分场景下需要人工进行数据连接串的切换处理,对运维造成不便,无法实现业务快速恢复,影响较大。现有技术中的系统连接示意图可参见图1。
51.本技术通过构建java版的统一数据访问层(数据访问引擎),应用通过客户端调用服务端的数据访问服务,服务端具备sql解析、事务管理、路由管理、连接池管理等功能,并统一对接底层数据库(内存库、物理库)。本技术一个实施例提供的系统连接示意图可参见图2。
52.为了解决现有技术问题,本技术实施例提供了一种数据访问方法、装置、设备及计算机存储介质。下面首先对本技术实施例所提供的数据访问方法进行介绍。
53.图3示出了本技术一个实施例提供的数据访问方法的流程示意图。如图3所示,该数据访问方法,应用于预设的数据访问引擎服务端,包括:
54.s301、接收各个客户端发送的数据访问请求。
55.在一个实施例中,在接收各个客户端发送的数据访问请求之前,方法还包括:创建数据访问引擎服务端。
56.在一个实施例中,创建数据访问引擎服务端,包括:搭建数据访问引擎服务端的服务框架;基于服务框架,配置数据访问引擎服务端的功能服务接口。
57.在一个实施例中,在基于服务框架,配置数据访问引擎服务端的功能服务接口之后,方法还包括:基于数据访问引擎服务端的功能服务接口,适配客户端的功能服务接口。
58.s302、根据数据访问请求,获取数据访问请求对应的目标数据。
59.在一个实施例中,根据数据访问请求,获取数据访问请求对应的目标数据,包括:根据数据访问请求,确定数据访问请求对应的目标数据库;从目标数据库中获取目标数据。
60.在一个实施例中,目标数据库包括内存数据库、物理数据库中的至少一种。
61.在一个实施例中,方法还包括:在目标数据库发生故障的情况下,切换至其他正常数据库。
62.s303、向客户端发送目标数据。
63.该数据访问方法,应用于预设的数据访问引擎服务端,包括:接收各个客户端发送的数据访问请求;根据数据访问请求,获取数据访问请求对应的目标数据;向客户端发送目标数据。可见,该方法通过预设的数据访问引擎服务端作为数据访问层,统一管理数据库访问服务,能够提高系统性能。
64.下面以一个具体实施例对上述技术方案进行具体说明。
65.本实施例构建一个全新的服务端作为数据访问层,统一管理数据库访问服务。分布式数据访问引擎(data access engine,dae),用于数据库、文件系统等访问层。dae提供sql解析、路由管理、事务管理、公共组件、异常管理、连接池管理、数据库适配器等多个模块功能。应用客户端修改对数据库的访问,修改成访问dae服务,进而与数据库进行交互。应用客户端需要整改直连数据库、连接池连接数据库、groovy sql连接数据库等多种方式,通用统一的客户端封装访问请求,发送请求到服务端,服务端接口请求处理,并返回相应结果。系统实现架构如图4所示。
66.该java dae主要包括三个子模块:
67.1、构建java dae数据访问引擎服务端。
68.1.1、dae服务框架搭建。
69.按照通用服务框架搭建服务,支持集群和非集群模式,通过系统配置参数(groupcode)决定。支持发送任务接口(taskmon)心跳。支持服务的性能统计、输出和上报。服务的核心线程数、并发线程数支持可配置。dae服务使用的连接池支持统一配置和按照服务名(servername)进行配置。
70.1.2、实现若干dae功能服务接口。
71.包括:dae服务preparestatement接口、dae服务preparecall接口、dae服务executequery接口、dae服务querynext接口、dae服务executeupdate接口、dae服务commit接口、dae服务rollback接口、dae服务close接口、dae服务getps接口。
72.以dae服务executeupdate接口为例介绍具体接口实现方案:
73.解析接口报文中的transid字段长度,根据字节长度读取流中的transid,捕获在解析过程中获取的各种异常信息。出现异常后返回客户端某错误码(如0602)。解析接口报文中的psid字段长度,根据字节长度读取流中的psid,捕获在解析过程中获取的各种异常信息。出现异常后返回客户端某错误码(如0603)。根据报文中的psid transid获取真正的preparestatement对象,使用preparestatement对象执行executeupdate操作,对于异常进行捕获,打印异常信息,返回执行更新失败某错误码(如0601)。
74.执行正常组装报文返回结果,解析接口报文中的transid字段长度,根据字节长度读取流中的transid,捕获在解析过程中获取的各种异常信息,出现异常后返回客户端错误码0602。读取执行更新报文头中压缩标记并缓存记录,执行更新压缩标记为1报文有压缩,需要把报文进行解压。根据执行更新报文中绑定变量个数循环获取对应的绑定变量,执行更新操作根据获取的绑定字段程度及余下绑定变量值。根据分隔符解析执行更新出绑定变量的类型和绑定变量的真实值或者反序列获取值,按照获取的变量类型对执行更新变量进
行校验,校验错误返回错误码。校验执行更新获取解析过程中变量类型进行合法校验,变量为对象需要按照执行更新变量类型进行反序列化操作。校验执行更新操作中的存储过程参数长度,根据注册参数的数量长度进行合法性校验,按照执行更新存储过程的注册参数数量进行循环处理。
75.2、实现客户端java数据库连接(java database connectivity,jdbc)改造。
76.2.1、客户端提供驱动(driver)类的实现。
77.提供driver方法实现,提供connect实现方法,透传jdbc接口方法,提供createconnection方法,出jdbc接口方法,提供acceptsurl方法,透传jdbc接口方法,提供getpropertyinfo方法,透传jdbc接口方法。
78.2.2、客户端获取参数库连接。
79.2.3、实现若干dae客户端接口功能。
80.包括:客户端preparestatement接口、客户端preparecall接口、客户端executequery接口、客户端querynext接口、客户端executeupdate接口、客户端commit接口、客户端rollback接口、客户端close接口、客户端getps接口。
81.以客户端调用commit接口为例介绍具体实现方案:
82.根据客户端传递的connection对象获取对应的servername,根据servername获取对应的dae服务连接,根据connection对象 servername获取对应的dae的transid,根据transid获取本次事务所有非常操作的sql和绑定变量值以及参数值。根据配置的sql需要redo的sql写入到transcation_log日志表,调用dae的preparestatement(transid,servername,sql,bindvar)。解析preparestatement的返回结果psid,调用dae的execute(transid,psid),解析dae的返回结果调用commit(transid)。如果结果执行超时或者返回异常时候进行异常处理,调用preparestatement接口进行查询transcations_log表,获取对应的transid是否提交成功。提交成功,直接返回客户端成功。未查询到,判断操作操作sql是重做sql,需要新建事务id,根据新的transid把之前preparestatement的语句重新调用dae服务,调用dae的execute的(transid,psid)标记事务未执行成功。返回客户端执行失败。
83.3、实现有关java应用进程(以用户资料刷新进程为例)适配改造。
84.用户资料刷新进程使用jdbc接口连接数据,主要有直接使用原生jdbc接口,有使用dbutil接口,还有部分使用groovy的groovysql接口,需要适配。适配刷新进程的jdbc的preparestatement接口、适配刷新进程的jdbc的preparecall接口、适配刷新进程的jdbc的executequery接口、适配刷新进程的jdbc的execute接口、适配刷新进程的jdbc的commit接口、适配刷新进程的jdbc的rollback接口、适配cbs-core公共包的dbutil的execute接口、适配cbs-core公共包的dbutil的queryone接口、适配cbs-core公共包的dbutil的query接口、适配二次登陆接口javasecondlogon,驱动使用新的客户端ngjdbdc驱动。
85.本实施例创新地设计出一种解决现网boss计费帐务系统中的java应用程序在访问数据库时候由于建立各自独立的连接导致连接数过多系统性能降低以及当数据库异常情况下发生切换导致需要人工进行数据连接串的处理导致对运维造成不便的使用方法,该方法关键点为:
86.1、构建统一的java版dae服务端框架支撑客户端对数据库(包括内存数据库、物理
数据库)连接访问集中管理:通过构建java版的统一数据访问层(数据访问引擎),应用通过客户端调用服务端的数据访问服务,服务端具备sql解析、事务管理、路由管理、连接池管理等功能,并统一对接底层数据库(内存库、物理库)。
87.2、提供客户端jdbc接口改造方法:实现若干dae客户端接口功能,包括、客户端调用准备接口、客户端查询接口、客户端修改(update)接口、客户端提交(commit)接口、客户端回滚(rollback)接口、客户端关闭(close)接口等。该类接口功能可以适用于boss计费帐务系统其它java应用程序的调用。
88.3、增强数据库异常故障时切换自动化能力:现网java的应用拥有对应配置文件,在访问数据库时候,都是建立各自独立的连接,当数据库异常情况下发生切换,需要人工进行数据连接串的处理;而dae实现针对识别有故障数据库情况下自动切换到其它正常数据库的功能,有效提升有关运维效率。
89.本实施例已在实验室环境下模拟运行,已经验证该基于java应用程序的统一数据访问引擎方案可行,新方案保障在boss计费帐务系统中java应用程序在访问数据库时通过统一的数据访问引擎控制访问,具备sql解析、路由管理、事务管理、公共组件、异常管理、连接池管理、数据库适配器等多个模块功能,能够减少数据库访问连接数,提升数据库系统i/o等运行性能,实现当数据库异常情况下发生切换,节省了人工进行数据连接串处理步骤,能够减少人工投入,提升了运维效率。
90.图5是本技术一个实施例提供的数据访问装置的结构示意图,如图5所示,该数据访问装置,应用于预设的数据访问引擎服务端,包括:
91.接收模块501,用于接收各个客户端发送的数据访问请求;
92.获取模块502,用于根据数据访问请求,获取数据访问请求对应的目标数据;
93.发送模块503,用于向客户端发送目标数据。
94.在一个实施例中,该装置还包括:创建模块,用于创建数据访问引擎服务端。
95.在一个实施例中,创建模块,用于:搭建数据访问引擎服务端的服务框架;基于服务框架,配置数据访问引擎服务端的功能服务接口。
96.在一个实施例中,该装置还包括:适配模块,用于基于数据访问引擎服务端的功能服务接口,适配客户端的功能服务接口。
97.在一个实施例中,获取模块502,用于:根据数据访问请求,确定数据访问请求对应的目标数据库;从目标数据库中获取目标数据。
98.在一个实施例中,目标数据库包括内存数据库、物理数据库中的至少一种。
99.在一个实施例中,该装置还包括:切换模块,用于在目标数据库发生故障的情况下,切换至其他正常数据库。
100.图5所示装置中的各个模块/单元具有实现图3中各个步骤的功能,并能达到其相应的技术效果,为简洁描述,在此不再赘述。
101.图6示出了本技术实施例提供的电子设备的结构示意图。
102.电子设备可以包括处理器601以及存储有计算机程序指令的存储器602。
103.具体地,上述处理器601可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
104.存储器602可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器602可包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器602可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器602可在电子设备的内部或外部。在特定实施例中,存储器602可以是非易失性固态存储器。
105.在一个实例中,存储器602可以是只读存储器(read only memory,rom)。在一个实例中,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。
106.处理器601通过读取并执行存储器602中存储的计算机程序指令,以实现上述实施例中的任意一种数据访问方法。
107.在一个示例中,电子设备还可包括通信接口603和总线610。其中,如图6所示,处理器601、存储器602、通信接口603通过总线610连接并完成相互间的通信。
108.通信接口603,主要用于实现本技术实施例中各模块、装置、单元和/或设备之间的通信。
109.总线610包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线610可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。
110.另外,本技术实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数据访问方法。
111.需要明确的是,本技术并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本技术的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本技术的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
112.以上所述的结构框图中所示的功能模块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本技术的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
113.还需要说明的是,本技术中提及的示例性实施例,基于一系列的步骤或者装置描
述一些方法或系统。但是,本技术不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
114.上面参考根据本技术的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本技术的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
115.以上所述,仅为本技术的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献