CN106293887A - 数据库处理方法及装置 - Google Patents

数据库处理方法及装置 Download PDF

Info

Publication number
CN106293887A
CN106293887A CN201510263275.9A CN201510263275A CN106293887A CN 106293887 A CN106293887 A CN 106293887A CN 201510263275 A CN201510263275 A CN 201510263275A CN 106293887 A CN106293887 A CN 106293887A
Authority
CN
China
Prior art keywords
data
services end
agent client
request
services
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.)
Pending
Application number
CN201510263275.9A
Other languages
English (en)
Inventor
吴秋鹏
丁岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Citic Bank Corp Ltd
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201510263275.9A priority Critical patent/CN106293887A/zh
Priority to PCT/CN2016/073373 priority patent/WO2016184175A1/zh
Publication of CN106293887A publication Critical patent/CN106293887A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Abstract

本发明提供了一种数据库处理方法及装置,其中,该方法包括:代理客户端接收业务应用发送的处理请求,其中,该处理请求用于请求对数据库中的数据进行处理;该代理客户端确定用于执行处理请求的数据服务端,其中,该业务应用通过代理客户端和数据服务端访问数据库;该代理客户端将处理请求发送给确定的数据服务端;上述确定的数据服务端根据处理请求对数据库中的数据进行处理;上述确定的数据服务端将处理结果发送给代理客户端;上述代理客户端将接收到的处理结果发送给业务应用。通过本发明,解决了相关技术中存在的由于数据库访问逻辑异常导致业务服务中断的问题,进而达到了保证业务服务正常进行的效果。

Description

数据库处理方法及装置
技术领域
本发明涉及通信领域,具体而言,涉及一种数据库处理方法及装置。
背景技术
企业级应用软件都会有大量的数据库访问操作,在软件逻辑架构上一般会作为单独的一层即数据访问层,业务逻辑层(即,业务应用)调用数据库访问层去访问数据库中的资源,来解耦业务逻辑和数据库访问逻辑,以便将低级别的数据访问逻辑与高级别的业务逻辑分离。
但是相关技术中的访问数据库中的资源的模式会存在两个问题:
首先因业务逻辑(即,业务应用)是直接调用数据库访问逻辑,如果数据库访问对象因内部有缺陷或程序健壮性不高,在出现严重异常时会导致业务逻辑也崩溃掉。如果应用软件是单点部署的,整个软件服务就会中断,如果应用软件是分布式部署的,虽然其他业务节点仍能对外服务,但是整个系统的吞吐量会因少一个节点而降低。
其次,如果数据库访问层出现问题要修复升级,必须停止整个业务软件的运行,从而造成业务中断。
业界有采用面向服务的体系结构(Service-oriented Architecture,简称为SOA),把数据库访问统一以服务的形式封装成数据服务,供业务应用调用,但这种方案对原有应用业务的影响较大,首先调用方式从本地直接调用,变成了Web服务调用,对原有业务代码改造很大;其次如果数据服务出现异常或崩溃,仍会造成业务应用出现异常。因此,在相关技术中存在着由于数据库访问逻辑异常导致业务服务中断的问题。
针对相关技术中存在的由于数据库访问逻辑异常导致业务服务中断的问题,目前尚未提出有效的解决方案。
发明内容
本发明提供了一种数据库处理方法及装置,以至少解决相关技术中存在的由于数据库访问逻辑异常导致业务服务中断的问题。
根据本发明的一个方面,提供了一种数据库处理方法,包括:代理客户端接收业务应用发送的处理请求,其中,所述处理请求用于请求对所述数据库中的数据进行处理;所述代理客户端确定用于执行所述处理请求的数据服务端,其中,所述业务应用通过所述代理客户端和所述数据服务端访问所述数据库;所述代理客户端将所述处理请求发送给确定的数据服务端;所述确定的数据服务端根据所述处理请求对所述数据库中的数据进行处理;所述确定的数据服务端将所述处理结果发送给所述代理客户端;所述代理客户端将接收到的所述处理结果发送给所述业务应用。
进一步地,所述代理客户端通过以下方式至少之一确定用于执行所述处理请求的数据服务端包括:所述代理客户端根据预定配置确定数据服务端;所述代理客户端根据数据服务端负荷的大小确定数据服务端,其中,所述代理客户端选择负荷最小的数据服务端。
进一步地,当所述代理客户端根据预定配置确定数据服务端后,还包括:当根据预定配置确定的数据服务端异常后,所述代理客户端选择其他的处于正常运行状态的数据服务端。
进一步地,所述代理客户端选择其他的处于正常运行状态的数据服务端后,还包括:当所述根据预定配置确定的数据服务端恢复正常后,所述代理客户端重新选择所述根据预定配置确定的数据服务端作为执行所述处理请求的数据服务端。
进一步地,所述代理客户端接收所述业务应用发送的所述处理请求包括:所述代理客户端通过接口接收所述处理请求,其中,所述接口包括以下至少之一:入口参数包括服务数据的信息的接口、入口参数数据库访问请求的接口,所述服务数据的信息用于指示所述业务应用需要处理的数据。
进一步地,所述接口为本地接口。
进一步地,所述代理客户端将所述处理请求发送给确定的数据服务端包括:所述代理客户端按照预定通讯协议将所述处理请求编码成请求报文;所述代理客户端将所述请求报文发送给所述确定的数据服务端。
进一步地,所述确定的数据服务端将所述处理结果发送给所述代理客户端包括:所述数据服务端按照预定通讯协议将所述处理结果返回给所述代理客户端。
根据本发明的另一方面,提供了一种数据库处理装置,包括:接收模块,所述接收模块应用于代理客户端中,用于接收业务应用发送的处理请求,其中,所述处理请求用于请求对所述数据库中的数据进行处理;确定模块,所述确定模块应用于代理客户端中,用于确定用于执行所述处理请求的数据服务端,其中,所述业务应用通过所述代理客户端和所述数据服务端访问所述数据库;第一发送模块,所述第一发送模块应用于代理客户端中,用于将所述处理请求发送给确定的数据服务端;处理模块,所述处理模块应用于确定的数据服务端中,用于根据所述处理请求对所述数据库中的数据进行处理;第二发送模块,所述第二发送模块应用于确定的数据服务端中,用于将所述处理结果发送给所述代理客户端;第三发送模块,所述第三发送模块应用于代理客户端中,用于将接收到的所述处理结果发送给所述业务应用。
进一步地,所述确定模块包括:第一确定单元,用于根据预定配置确定数据服务端;第二确定单元,用于根据数据服务端负荷的大小确定数据服务端,其中,所述代理客户端选择负荷最小的数据服务端。
进一步地,所述确定模块还包括:第一选择单元,用于当根据预定配置确定的数据服务端异常后,选择其他的处于正常运行状态的数据服务端。
进一步地,所述确定模块还包括:第二选择单元,用于当所述根据预定配置确定的数据服务端恢复正常后,重新选择所述根据预定配置确定的数据服务端作为执行所述处理请求的数据服务端。
进一步地,所述接收模块包括:接收单元,用于通过接口接收所述处理请求,其中,所述接口包括以下至少之一:入口参数包括服务数据的信息的接口、入口参数数据库访问请求的接口,所述服务数据的信息用于指示所述业务应用需要处理的数据。
进一步地,所述接口为本地接口。
进一步地,所述第一发送模块包括:编码单元,用于按照预定通讯协议将所述处理请求编码成请求报文;发送单元,用于将所述请求报文发送给所述确定的数据服务端。
进一步地,所述第二发送模块包括:返回单元,用于按照预定通讯协议将所述处理结果返回给所述代理客户端。
通过本发明,采用代理客户端接收业务应用发送的处理请求,其中,所述处理请求用于请求对所述数据库中的数据进行处理;所述代理客户端确定用于执行所述处理请求的数据服务端,其中,所述业务应用通过所述代理客户端和所述数据服务端访问所述数据库;所述代理客户端将所述处理请求发送给确定的数据服务端;所述确定的数据服务端根据所述处理请求对所述数据库中的数据进行处理;所述确定的数据服务端将所述处理结果发送给所述代理客户端;所述代理客户端将接收到的所述处理结果发送给所述业务应用。从而实现了将数据访问逻辑封装成数据服务系统,并且,该数据服务系统中的代理客户端能够被业务应用直接调用,屏蔽了数据服务的复杂性,并且,可以由代理客户端确定执行处理请求的数据服务端,而该数据服务端的数量可以为两个以上,从而保证了当一个数据服务端异常后,可以使用其他的数据服务端执行处理请求,保证业务服务的正常进行,降低影响,从而解决了相关技术中存在的由于数据库访问逻辑异常导致业务服务中断的问题,进而达到了保证业务服务正常进行的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据库处理方法的流程图;
图2是根据本发明实施例的数据库处理装置的结构框图;
图3是根据本发明实施例的数据库处理装置中确定模块24的结构框图;
图4是根据本发明实施例的数据库处理装置中确定模块24的优选结构框图一;
图5是根据本发明实施例的数据库处理装置中确定模块24的优选结构框图二;
图6是根据本发明实施例的数据库处理装置中接收模块22的结构框图;
图7是根据本发明实施例的数据库处理装置中第一发送模块26的结构框图;
图8是根据本发明实施例的数据库处理装置中第二发送模块210的结构框图;
图9是根据本发明实施例的业务应用调用数据服务的基本流程示意图;
图10是根据本发明实施例的通讯流程示意图;
图11是根据本发明实施例的单机应用场景时数据服务系统的结构示意图;
图12是根据本发明实施例的分布式应用场景时数据服务系统的结构示意图;
图13是根据本发明实施例的数据服务系统的模块结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本实施例中提供了一种数据库处理方法,图1是根据本发明实施例的数据库处理方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,代理客户端接收业务应用发送的处理请求,其中,该处理请求用于请求对数据库中的数据进行处理;
步骤S104,该代理客户端确定用于执行处理请求的数据服务端,其中,该业务应用通过代理客户端和数据服务端访问数据库;
步骤S106,该代理客户端将处理请求发送给确定的数据服务端;
步骤S108,上述确定的数据服务端根据处理请求对数据库中的数据进行处理;
步骤S110,上述确定的数据服务端将处理结果发送给代理客户端;
步骤S112,上述代理客户端将接收到的处理结果发送给业务应用。
在本实施例中,将数据访问逻辑封装成数据服务系统,数据服务系统分为代理客户端和数据服务端,代理客户端被业务应用集成并直接调用,代理客户端和数据服务端之间可以通过网络通讯。通过上述步骤,实现了数据服务系统中的代理客户端能够被业务应用直接调用,屏蔽了数据服务的复杂性,并且,可以由代理客户端确定执行处理请求的数据服务端,而该数据服务端的数量可以为两个以上,从而保证了当一个数据服务端异常后,可以使用其他的数据服务端执行处理请求,保证业务服务的正常进行,降低影响,从而解决了相关技术中存在的由于数据库访问逻辑异常导致业务服务中断的问题,进而达到了保证业务服务正常进行的效果。
在一个可选的实施例中,上述代理客户端可以通过以下方式至少之一确定用于执行处理请求的数据服务端:代理客户端根据预定配置确定数据服务端;该代理客户端根据数据服务端负荷的大小确定数据服务端,其中,代理客户端选择负荷最小的数据服务端。由此可知,当代理客户端确定数据服务端时,可以有多种确定方式,一种方式是,根据预定配置确定数据服务端,即,每个代理客户端都可以有预先配置的数据服务端,该预先配置的数据服务端即为默认配置的数据服务端,其中,默认配置的数据服务端可以是一个或多个,代理客户端可以利用该默认配置的数据服务对数据库进行相应的处理。另外一种方式时,当代理客户端没有默认配置的数据服务端时,该代理客户端可以根据预定的规则选择数据服务端,该预定的规则可以有多种,例如,可以选择负荷最小的数据服务端,可以选择处理能力最强的数据服务端,也可以随机选择处于空闲状态的数据服务端。当然,上述的确定数据服务端的方式仅仅是一种示例,确定数据服务端的方式并不仅仅限于上述的方式。
从上述的实施例可知,代理客户端可以根据预定配置确定数据服务端,在实际应用中,该根据预定配置确定的数据服务端可能会出现异常,当该根据预定配置确定的数据服务端出现异常后,代理客户端需要选择其他的用于执行处理请求的数据服务端,在一个可选的实施例中,当根据预定配置确定的数据服务端异常后,该代理客户端选择其他的处于正常运行状态的数据服务端。在选择其他的数据服务端时,选择的原则可以同上述的实施例中的预定的规则一致,即可以选择负荷最小的数据服务端,可以选择处理能力最强的数据服务端,也可以随机选择处于空闲状态的数据服务端,当然,也可以有其他的选择方法,如代理客户端按预定顺序轮询其他的数据服务端,发现空闲且能够正常工作的数据服务端后,便选择该空闲且能够正常工作的数据服务端。由于数据服务端可以执行处理请求,因此,数据服务端中封装了数据库访问逻辑,单独部署,数据服务端可以和一个或多个数据库建立并保持数据库连接;并且,数据服务端的数量可以为两个或更多,多个数据服务端可以组成一个集群。在确定数据服务端异常时,可以有多种确定方式,例如当数据服务端的心跳异常,或者网络中断。
在一个可选的实施例中,当上述代理客户端选择其他的处于正常运行状态的数据服务端后,还包括:当上述根据预定配置确定的数据服务端恢复正常后,该代理客户端重新选择该根据预定配置确定的数据服务端作为执行处理请求的数据服务端。从而保证不长期占用其他代理客户端连接的数据服务端。
在一个可选的实施例中,代理客户端接收业务应用发送的处理请求包括:该代理客户端通过接口接收处理请求,其中,该接口包括以下至少之一:入口参数包括服务数据的信息的接口、入口参数数据库访问请求的接口,该服务数据的信息用于指示业务应用需要处理的数据。上述的服务数据的信息可以包括唯一标识的数据服务ID和业务参数,该业务参数可以是查询条件,也可以是需要插入数据库的业务数据等;上述的入口参数数据库访问请求可以是标准的结构化查询语言(Structured Query Language,简称为SQL)。
在一个可选的实施例中,上述的接口可以为本地接口,即业务应用是以本地接口的方式调用代理客户端。
在一个可选的实施例中,当上述的代理客户端将处理请求发送给确定的数据服务端时,可以首先按照预定通讯协议将该处理请求编码成请求报文;再将请求报文发送给上述确定的数据服务端。
在一个可选的实施例中,数据服务端在接收到代理客户端发送的处理请求后,可以根据事先配置好的数据库连接信息和数据服务逻辑,转换成SQL访问对应的数据库进行数据库操作或者直接转发数据库访问请求;并按照内部通讯协议将数据库操作结果返回给代理客户端,其中,数据服务端在返回操作结果时,可以是以响应报文的方式返回操作结果。代理客户端可以获取并解析数据服务端返回的响应报文,把响应结果返回给业务应用。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例中的方法。
在本实施例中还提供了一种数据库处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是根据本发明实施例的数据库处理装置的结构框图,如图2所示,该装置包括接收模块22、确定模块24、第一发送模块26、处理模块28、第二发送模块210和第三发送模块212,其中,接收模块22、确定模块24、第一发送模块26和第三发送模块212应用于代理客户端中,处理模块28和第二发送模块210应用于数据服务端中。下面对该装置进行说明:
接收模块22,用于接收业务应用发送的处理请求,其中,该处理请求用于请求对数据库中的数据进行处理;确定模块24,用于确定用于执行处理请求的数据服务端,其中,该业务应用通过代理客户端和数据服务端访问数据库;第一发送模块26,用于将处理请求发送给确定的数据服务端;处理模块28,用于根据处理请求对数据库中的数据进行处理;第二发送模块210,用于将处理结果发送给代理客户端;第三发送模块212,用于将接收到的处理结果发送给业务应用。
图3是根据本发明实施例的数据库处理装置中确定模块24的结构框图,如图3所示,该确定模块24包括第一确定单元32和第二确定单元34,下面对该确定模块24进行说明:
第一确定单元32,用于根据预定配置确定数据服务端;第二确定单元34,用于根据数据服务端负荷的大小确定数据服务端,其中,该代理客户端选择负荷最小的数据服务端。
图4是根据本发明实施例的数据库处理装置中确定模块24的优选结构框图一,如图4所示,该确定模块24除包括图3所示的单元外,还包括第一选择单元42,下面对该确定模块24进行说明。
第一选择单元42,连接至上述第一确定单元32,用于当根据预定配置确定的数据服务端异常后,选择其他的处于正常运行状态的数据服务端。
图5是根据本发明实施例的数据库处理装置中确定模块24的优选结构框图二,如图5所示,该确定模块24除包括图4所示的单元外,还包括第二选择单元52,下面对该确定模块24进行说明。
第二选择单元52,连接至上述第一选择单元42,用于当根据预定配置确定的数据服务端恢复正常后,重新选择该根据预定配置确定的数据服务端作为执行上述处理请求的数据服务端。
图6是根据本发明实施例的数据库处理装置中接收模块22的结构框图,如图6所示,该接收模块22包括接收单元62,下面对该接收单元62进行说明。
接收单元62,用于通过接口接收处理请求,其中,该接口包括以下至少之一:入口参数包括服务数据的信息的接口、入口参数数据库访问请求的接口,该服务数据的信息用于指示上述业务应用需要处理的数据。
在一个可选的实施例中,上述接口为本地接口。
图7是根据本发明实施例的数据库处理装置中第一发送模块26的结构框图,如图7所示,该第一发送模块26包括编码单元72和发送单元74,下面对该第一发送模块26进行说明。
编码单元72,用于按照预定通讯协议将处理请求编码成请求报文;发送单元74,连接至上述编码单元72,用于将请求报文发送给确定的数据服务端。
图8是根据本发明实施例的数据库处理装置中第二发送模块210的结构框图,如图8所示,该第二发送模块210包括返回单元82,下面对该返回单元82进行说明。
返回单元82,用于按照预定通讯协议将处理结果返回给代理客户端。
下面以上述的服务数据的信息为数据服务ID和业务参数,上述的入口参数数据库访问请求为SQL为例,对本发明进行说明:
图9是根据本发明实施例的业务应用调用数据服务的基本流程示意图,如图9所示,该流程包括如下步骤:
步骤S902,业务应用本地调用代理客户端里的接口,传入数据服务ID和业务参数。
步骤S904,代理客户端把数据服务ID和业务参数编码成请求报文后,发送给数据服务端。
步骤S906,数据服务端接收到代理客户端发来的请求报文后,解码出数据服务ID和业务参数,根据配置转换成标准SQL,并通过数据库连接(Java DataBase ConnectivityJava,简称为JDBC)或开放数据库互联(Open DataBase Connectivity,简称为ODBC)访问数据库执行SQL,把SQL执行结果编码成响应报文发送给代理客户端。
步骤S908,代理客户端接收到数据服务端发送的响应报文,解码出SQL执行结果返回给业务应用。
通过该实施例,把数据访问逻辑封装成数据服务系统,并且数据服务系统分为代理客户端和数据服务端,代理客户端被业务软件集成并直接调用,屏蔽了数据服务的复杂性。数据服务端部署成集群,当代理客户端连接的数据服务端出现异常时,或数据服务端停机升级时,代理客户端自动切换到集群内其他运行正常的数据服务端,从而对业务应用没有任何影响。
下面对Java语言场景下的数据服务系统的通讯流程和基本处理流程进行说明:
图10是根据本发明实施例的通讯流程示意图,如图10所示,该流程包括如下步骤:
步骤S1002,当业务应用需要访问数据库时,调用代理客户端统一的java接口,入参为唯一标识的数据服务ID以及业务参数,例如查询条件或插入的业务数据等。
步骤S1004,代理客户端把上述参数按照内部协议编码成请求报文,发送给默认连接的数据服务端(同上述的根据预定配置确定的数据服务端)。
步骤S1006,数据服务端接收到数据服务请求报文后,首先解码请求,取出请求中的数据服务ID和业务参数,在自身的数据服务配置中查找对应数据服务ID的相关配置,包括数据库连接信息、数据服务对应的SQL、和java对象的映射关系等,通过数据库连接信息从数据库连接池中取出该数据库的连接,通过JDBC驱动执行SQL和业务参数。
步骤S1008,数据服务端获取数据库返回的SQL执行结果。
步骤S1010,数据服务端把数据库返回的SQL执行结果以内部协议编码成响应报文,发给代理客户端。
步骤S1012,代理客户端收到响应报文后,解码出SQL执行结果,并根据该数据服务和java对象的映射关系配置,把SQL执行结果反序列化成java对象,返回给业务应用。
业务应用无论是单机单节点应用,还是部署成多节点的分布式应用,都可以采用本发明的数据服务方法。
图11是根据本发明实施例的单机应用场景时数据服务系统的结构示意图,如图11所示,当业务应用为单机单节点时,数据服务需要有一个代理客户端被业务应用集成,部署两个或更多的数据服务端作为一个集群,代理客户端配置了集群里所有的数据服务端连接信息,连接信息包括数据服务端IP和监听端口等。应用启动前需要先启动所有的数据服务端,启动应用时,代理客户端连接上配置的默认的数据服务端(同上述的根据预定配置确定的数据服务端),通过此数据服务端提供数据服务。如果代理客户端检测到默认的数据服务端出现异常,则轮询集群中下一个数据服务端进行连接,连接成功后使用新的数据服务端给业务应用提供数据服务。
图12是根据本发明实施例的分布式应用场景时数据服务系统的结构示意图,如图12所示,当业务应用为多节点分布式部署场景时,基本和单节点业务应用类似,区别是每个节点的业务应用集成一个代理客户端,为每个业务应用部署一个数据服务端,每个业务应用的代理客户端配置默认连接的是自己的数据服务端(即,每个业务应用的代理客户端连接的是根据预定配置确定的数据服务端),所有的数据服务端组成一个集群。每个节点的应用启动时,代理客户端连接默认的数据服务端。当某个业务应用的代理客户端连接的数据服务端出现异常时,该代理客户端轮询集群中下一个数据服务端进行连接,连接成功后使用新的数据服务端给业务应用提供数据服务,同时该代理客户端定时检测默认的数据服务端是否恢复正常,如果恢复正常则中断非默认的数据服务端的所有连接,重新连接默认的数据服务端并提供数据服务。以确保不长期占用其他节点的数据服务端。
图13是根据本发明实施例的数据服务系统的模块结构框图,如图13所示,该系统包括两大组件:代理客户端132和数据服务端134,以下分别说明两大组件的各个模块:
代理客户端132中包括应用接口层1321和代理客户端通讯模块1322,下面对该应用接口层1321和代理客户端通讯模块1322进行说明:
应用接口层1321:
根据执行SQL类型的不通,接口分为以下两类:
1)数据查询接口:入参为数据服务ID、参数集合,返回值类型为集合对象,集合中每个元素是javabean对象,对应数据查询的一行记录。数据查询返回的字段和javabean属性的映射关系由代理客户端通讯模块从数据服务端获取。适用于调用封装了数据查询语言的数据服务,如SELECT语句。
2)数据操纵接口:入参为数据服务ID、参数,返回值为受影响的行数。
适用于调用封装了数据操纵语言的数据服务,如INSERT、UPDATE、DELETE语句。
根据不同业务的需求,可以定制化提供更多类型的接口。
代理客户端通讯模块1322:
代理客户端132启动时,代理客户端通讯模块1322从配置文件中读取默认的数据服务端(同上述的根据预定配置确定的数据服务端)连接信息和集群中其他的数据服务端连接信息,连接默认的数据服务端134,并通过内部协议从数据服务端134获取SQL执行结果和返回javabean的映射关系。当业务应用调用代理客户端接口时,该代理客户端通讯模块1322把接口入参的数据服务ID和业务参数按照JSON格式编码成请求报文,发送给连接的数据服务端134,并阻塞接收返回响应报文或者超时。接收到响应报文后,解码出响应结果,供应用接口层根据不同的接口类型封装成java对象,返回给业务应用。
数据服务端134异常时,代理客户端通讯模块1322轮询连接所配置的所有数据服务端,如果能正常连接则使用该数据服务端。
如果在分布式应用部署场景下,代理客户端通讯模块1322定时检测默认的数据服务端134是否恢复正常,如果连恢复正常则断开正连接的数据服务端,使用默认的数据服务端134,以便不长期占用其他代理连接使用的默认的数据服务端。
数据服务端134包括数据服务端通讯模块1341、数据服务和SQL转换模块1342、SQL执行模块1343、数据库连接模块1344和配置模块1345,下面对各模块进行说明:
数据服务端通讯模块1341:
数据服务端134启动时,数据服务端通讯模块1341作为socket服务端去监听端口,并初始化线程池,每次接收到数据服务请求后,从线程池获取一个线程,执行后续处理逻辑。
数据服务端通讯模块1341当接收到请求报文后从请求报文中解码出数据服务ID和业务参数,交给数据服务和SQL转换模块1342处理,并把数据服务和SQL转换模块1342的返回结果编码成响应报文,发送给代理客户端132。
数据服务和SQL转换模块1342:
根据配置模块中缓存的数据服务ID和SQL的对应关系,把数据服务请求转换成SQL,调用SQL执行模块1343执行SQL。
SQL执行模块1343:从配置模块1345中获取数据服务ID对应的数据库信息,从数据库连接模块1344取出该数据库的连接,使用JDBC接口执行SQL并依次注入业务参数,并把执行结果返回给上层模块。
数据库连接模块1344:数据服务端134启动时,根据配置模块1345的数据库连接信息,使用数据库连接池和JDBC驱动连接单个或多个数据库。
配置模块1345:在配置文件中配置数据服务端134的监听端口、数据服务ID、SQL、数据服务ID和SQL的对应关系、数据库连接信息、数据服务ID和数据库连接信息的对应关系、SQL执行结果和返回javabean的映射关系。数据服务端134启动时,配置模块1345读取所有配置信息并缓存。
本发明实施例中涉及的是提供高可用数据服务的方法及装置。其中,数据服务分成代理客户端和数据服务端。把数据访问逻辑配置在数据服务端里并部署成集群,把代理客户端和业务应用部署在一起,代理客户端被业务应用集成并直接调用。当数据服务端出现异常,代理客户端自动切换到集群内正常运行的其他数据服务端。本发明通过配置SQL的方式封装了数据库访问逻辑,降低了开发数据访问层的工作量;对业务应用来说本地直接调用代理客户端,不涉及网络通讯、数据库连接等,开发成本低。更为优越的是提供了高可用的数据服务方案,避免了数据服务层的单点故障,同时也能在对业务应用没影响的情况下升级和维护数据服务端。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,代理客户端接收业务应用发送的处理请求,其中,该处理请求用于请求对数据库中的数据进行处理;
S2,该代理客户端确定用于执行处理请求的数据服务端,其中,该业务应用通过代理客户端和数据服务端访问数据库;
S3,该代理客户端将处理请求发送给确定的数据服务端;
S4,上述确定的数据服务端根据处理请求对数据库中的数据进行处理;
S5,上述确定的数据服务端将处理结果发送给代理客户端;
S6,上述代理客户端将接收到的处理结果发送给业务应用。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种数据库处理方法,其特征在于,包括:
代理客户端接收业务应用发送的处理请求,其中,所述处理请求用于请求对所述数据库中的数据进行处理;
所述代理客户端确定用于执行所述处理请求的数据服务端,其中,所述业务应用通过所述代理客户端和所述数据服务端访问所述数据库;
所述代理客户端将所述处理请求发送给确定的数据服务端;
所述确定的数据服务端根据所述处理请求对所述数据库中的数据进行处理;
所述确定的数据服务端将所述处理结果发送给所述代理客户端;
所述代理客户端将接收到的所述处理结果发送给所述业务应用。
2.根据权利要求1所述的方法,其特征在于,所述代理客户端通过以下方式至少之一确定用于执行所述处理请求的数据服务端包括:
所述代理客户端根据预定配置确定数据服务端;
所述代理客户端根据数据服务端负荷的大小确定数据服务端,其中,所述代理客户端选择负荷最小的数据服务端。
3.根据权利要求2所述的方法,其特征在于,当所述代理客户端根据预定配置确定数据服务端后,还包括:
当根据预定配置确定的数据服务端异常后,所述代理客户端选择其他的处于正常运行状态的数据服务端。
4.根据权利要求3所述的方法,其特征在于,所述代理客户端选择其他的处于正常运行状态的数据服务端后,还包括:
当所述根据预定配置确定的数据服务端恢复正常后,所述代理客户端重新选择所述根据预定配置确定的数据服务端作为执行所述处理请求的数据服务端。
5.根据权利要求1所述的方法,其特征在于,所述代理客户端接收所述业务应用发送的所述处理请求包括:
所述代理客户端通过接口接收所述处理请求,其中,所述接口包括以下至少之一:入口参数包括服务数据的信息的接口、入口参数数据库访问请求的接口,所述服务数据的信息用于指示所述业务应用需要处理的数据。
6.根据权利要求5所述的方法,其特征在于,所述接口为本地接口。
7.根据权利要求1所述的方法,其特征在于,所述代理客户端将所述处理请求发送给确定的数据服务端包括:
所述代理客户端按照预定通讯协议将所述处理请求编码成请求报文;
所述代理客户端将所述请求报文发送给所述确定的数据服务端。
8.根据权利要求1所述的方法,其特征在于,所述确定的数据服务端将所述处理结果发送给所述代理客户端包括:
所述数据服务端按照预定通讯协议将所述处理结果返回给所述代理客户端。
9.一种数据库处理装置,其特征在于,包括:
接收模块,所述接收模块应用于代理客户端中,用于接收业务应用发送的处理请求,其中,所述处理请求用于请求对所述数据库中的数据进行处理;
确定模块,所述确定模块应用于代理客户端中,用于确定用于执行所述处理请求的数据服务端,其中,所述业务应用通过所述代理客户端和所述数据服务端访问所述数据库;
第一发送模块,所述第一发送模块应用于代理客户端中,用于将所述处理请求发送给确定的数据服务端;
处理模块,所述处理模块应用于确定的数据服务端中,用于根据所述处理请求对所述数据库中的数据进行处理;
第二发送模块,所述第二发送模块应用于确定的数据服务端中,用于将所述处理结果发送给所述代理客户端;
第三发送模块,所述第三发送模块应用于代理客户端中,用于将接收到的所述处理结果发送给所述业务应用。
10.根据权利要求9所述的装置,其特征在于,所述确定模块包括:
第一确定单元,用于根据预定配置确定数据服务端;
第二确定单元,用于根据数据服务端负荷的大小确定数据服务端,其中,所述代理客户端选择负荷最小的数据服务端。
11.根据权利要求10所述的装置,其特征在于,所述确定模块还包括:
第一选择单元,用于当根据预定配置确定的数据服务端异常后,选择其他的处于正常运行状态的数据服务端。
12.根据权利要求11所述的装置,其特征在于,所述确定模块还包括:
第二选择单元,用于当所述根据预定配置确定的数据服务端恢复正常后,重新选择所述根据预定配置确定的数据服务端作为执行所述处理请求的数据服务端。
13.根据权利要求9所述的装置,其特征在于,所述接收模块包括:
接收单元,用于通过接口接收所述处理请求,其中,所述接口包括以下至少之一:入口参数包括服务数据的信息的接口、入口参数数据库访问请求的接口,所述服务数据的信息用于指示所述业务应用需要处理的数据。
14.根据权利要求13所述的装置,其特征在于,所述接口为本地接口。
15.根据权利要求9所述的装置,其特征在于,所述第一发送模块包括:
编码单元,用于按照预定通讯协议将所述处理请求编码成请求报文;
发送单元,用于将所述请求报文发送给所述确定的数据服务端。
16.根据权利要求9所述的装置,其特征在于,所述第二发送模块包括:
返回单元,用于按照预定通讯协议将所述处理结果返回给所述代理客户端。
CN201510263275.9A 2015-05-21 2015-05-21 数据库处理方法及装置 Pending CN106293887A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510263275.9A CN106293887A (zh) 2015-05-21 2015-05-21 数据库处理方法及装置
PCT/CN2016/073373 WO2016184175A1 (zh) 2015-05-21 2016-02-03 数据库处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510263275.9A CN106293887A (zh) 2015-05-21 2015-05-21 数据库处理方法及装置

Publications (1)

Publication Number Publication Date
CN106293887A true CN106293887A (zh) 2017-01-04

Family

ID=57319328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510263275.9A Pending CN106293887A (zh) 2015-05-21 2015-05-21 数据库处理方法及装置

Country Status (2)

Country Link
CN (1) CN106293887A (zh)
WO (1) WO2016184175A1 (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108512743A (zh) * 2018-03-06 2018-09-07 北京奇艺世纪科技有限公司 局域网即时通信服务方法、装置以及电子设备
CN110287165A (zh) * 2019-05-09 2019-09-27 北京极数云舟科技有限公司 数据库装置、数据库中间层装置及运行该数据库的方法
CN110297862A (zh) * 2019-07-04 2019-10-01 中国联合网络通信集团有限公司 数据库访问方法及数据库访问中间件
CN110764742A (zh) * 2019-10-18 2020-02-07 成都信息工程大学 一种气候观测数据线性相关度高速计算方法及系统
CN111431894A (zh) * 2020-03-20 2020-07-17 中国电力科学研究院有限公司 一种通用服务协议在透明访问框架中的实现方法
CN111538605A (zh) * 2020-04-24 2020-08-14 北京思特奇信息技术股份有限公司 一种分布式数据访问层中间件及命令执行方法和装置
CN111654542A (zh) * 2020-06-03 2020-09-11 支付宝(杭州)信息技术有限公司 代理服务器、执行服务器、接收设备以及任务执行方法
WO2020258249A1 (zh) * 2019-06-28 2020-12-30 华为技术有限公司 数据库访问方法和装置、计算设备和计算机程序产品
CN112350856A (zh) * 2020-10-27 2021-02-09 中国联合网络通信集团有限公司 分布式服务签退方法及设备
CN112688976A (zh) * 2019-10-17 2021-04-20 广州迈安信息科技有限公司 一种采用jdbc/http标准的数据处理传输服务系统
CN113268507A (zh) * 2021-05-26 2021-08-17 大箴(杭州)科技有限公司 数据库的数据读取系统及方法、装置、电子设备
CN113761037A (zh) * 2020-09-28 2021-12-07 西安京迅递供应链科技有限公司 一种导入导出方法、装置、服务器、介质及服务系统
CN113836175A (zh) * 2020-06-24 2021-12-24 浙江宇视科技有限公司 数据访问方法、装置、设备及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112364087A (zh) * 2020-11-26 2021-02-12 亚信科技(中国)有限公司 Arm平台的c/c++应用程序访问数据库的方法及系统
CN112905640A (zh) * 2021-01-25 2021-06-04 武汉武钢绿色城市技术发展有限公司 一种基于netty的分布式数据库数据访问控制方法
CN113051276B (zh) * 2021-04-21 2022-08-19 平安普惠企业管理有限公司 配置业务服务的方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070280230A1 (en) * 2006-05-31 2007-12-06 Motorola, Inc Method and system for service discovery across a wide area network
CN101163265A (zh) * 2007-11-20 2008-04-16 中兴通讯股份有限公司 基于分布式数据库的彩信日志查询方法与系统
CN101539911A (zh) * 2008-03-18 2009-09-23 盛大计算机(上海)有限公司 加快浏览器网页显示的装置及方法
CN101848245A (zh) * 2010-02-05 2010-09-29 南京德讯信息系统有限公司 基于ssl/xml的数据库访问代理方法及系统
EP2721900A1 (en) * 2011-06-14 2014-04-23 Interdigital Patent Holdings, Inc. Efficiently maintaining communications connectivity for a plurality of applications

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009422A (en) * 1997-11-26 1999-12-28 International Business Machines Corporation System and method for query translation/semantic translation using generalized query language
CN101742702B (zh) * 2009-12-31 2014-03-19 中兴通讯股份有限公司 移动互联网业务共享系统及方法
CN101930472A (zh) * 2010-09-09 2010-12-29 南京中兴特种软件有限责任公司 一种支持分布式数据库基于并行查询的方法
CN102201010A (zh) * 2011-06-23 2011-09-28 清华大学 无共享架构的分布式数据库系统及其实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070280230A1 (en) * 2006-05-31 2007-12-06 Motorola, Inc Method and system for service discovery across a wide area network
CN101163265A (zh) * 2007-11-20 2008-04-16 中兴通讯股份有限公司 基于分布式数据库的彩信日志查询方法与系统
CN101539911A (zh) * 2008-03-18 2009-09-23 盛大计算机(上海)有限公司 加快浏览器网页显示的装置及方法
CN101848245A (zh) * 2010-02-05 2010-09-29 南京德讯信息系统有限公司 基于ssl/xml的数据库访问代理方法及系统
EP2721900A1 (en) * 2011-06-14 2014-04-23 Interdigital Patent Holdings, Inc. Efficiently maintaining communications connectivity for a plurality of applications

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108512743A (zh) * 2018-03-06 2018-09-07 北京奇艺世纪科技有限公司 局域网即时通信服务方法、装置以及电子设备
CN110287165A (zh) * 2019-05-09 2019-09-27 北京极数云舟科技有限公司 数据库装置、数据库中间层装置及运行该数据库的方法
WO2020258249A1 (zh) * 2019-06-28 2020-12-30 华为技术有限公司 数据库访问方法和装置、计算设备和计算机程序产品
CN112449697A (zh) * 2019-06-28 2021-03-05 华为技术有限公司 数据库访问方法和装置、计算设备和计算机程序产品
CN110297862A (zh) * 2019-07-04 2019-10-01 中国联合网络通信集团有限公司 数据库访问方法及数据库访问中间件
CN110297862B (zh) * 2019-07-04 2022-10-14 中国联合网络通信集团有限公司 数据库访问方法及数据库访问中间件
CN112688976A (zh) * 2019-10-17 2021-04-20 广州迈安信息科技有限公司 一种采用jdbc/http标准的数据处理传输服务系统
CN110764742A (zh) * 2019-10-18 2020-02-07 成都信息工程大学 一种气候观测数据线性相关度高速计算方法及系统
CN111431894A (zh) * 2020-03-20 2020-07-17 中国电力科学研究院有限公司 一种通用服务协议在透明访问框架中的实现方法
CN111538605A (zh) * 2020-04-24 2020-08-14 北京思特奇信息技术股份有限公司 一种分布式数据访问层中间件及命令执行方法和装置
CN111654542B (zh) * 2020-06-03 2023-03-31 支付宝(杭州)信息技术有限公司 代理服务器、执行服务器、接收设备以及任务执行方法
CN111654542A (zh) * 2020-06-03 2020-09-11 支付宝(杭州)信息技术有限公司 代理服务器、执行服务器、接收设备以及任务执行方法
CN113836175A (zh) * 2020-06-24 2021-12-24 浙江宇视科技有限公司 数据访问方法、装置、设备及存储介质
CN113761037A (zh) * 2020-09-28 2021-12-07 西安京迅递供应链科技有限公司 一种导入导出方法、装置、服务器、介质及服务系统
CN112350856A (zh) * 2020-10-27 2021-02-09 中国联合网络通信集团有限公司 分布式服务签退方法及设备
CN113268507A (zh) * 2021-05-26 2021-08-17 大箴(杭州)科技有限公司 数据库的数据读取系统及方法、装置、电子设备
CN113268507B (zh) * 2021-05-26 2023-03-14 大箴(杭州)科技有限公司 数据库的数据读取系统及方法、装置、电子设备

Also Published As

Publication number Publication date
WO2016184175A1 (zh) 2016-11-24

Similar Documents

Publication Publication Date Title
CN106293887A (zh) 数据库处理方法及装置
EP3656108B1 (en) Unstructured data storage function (udsf) services
CN109873736A (zh) 一种微服务监控方法及系统
US20140187224A1 (en) Protocol version negotiation method, mobile terminal, base station and communications system
CN110908879A (zh) 埋点数据的上报方法、装置、终端和存储介质
US20090198797A1 (en) Network device provisioning using documents
CN114048046B (zh) 一种服务的调用方法、装置及负载均衡设备
EP3062544B1 (en) Method, node and system for managing resources of machine type communication application
CN108427619B (zh) 日志管理方法、装置、计算设备及存储介质
CN110366276A (zh) 服务化架构基站
CN106034138A (zh) 一种远程服务调用方法及装置
CN107241242A (zh) 一种数据处理方法和装置
US8326913B2 (en) Method and system for service contract discovery
CN108959046B (zh) 一种信息处理方法、设备及装置
CN109547524A (zh) 基于物理网的用户行为存储方法、装置、设备及存储介质
CN109600458A (zh) 网站访问方法及装置
EP3974960A1 (en) Method and system for automated testing of web service apis
CN114830703B (zh) 签约改变的处理方法、设备及系统
CN109743366B (zh) 一种用于多活场景的资源加锁方法、装置及系统
CN107968798A (zh) 一种网管资源标签获取方法、缓存同步方法、装置及系统
US20060117321A1 (en) Interface for application components
US10939374B2 (en) Method and apparatus for remotely waking up a device connected to a network
US7609683B2 (en) Communication system, connection management server apparatus, and recording medium on which program is recorded
WO2022083281A1 (zh) 消息传输方法、系统、电子设备和存储介质
CN110830305B (zh) 无线设备接入wifi网络的方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Wu Qiupeng

Inventor after: Ding Yan

Inventor after: Liu Wentao

Inventor after: Deng Qiong

Inventor after: Chen Jianfeng

Inventor before: Wu Qiupeng

Inventor before: Ding Yan

CB03 Change of inventor or designer information
TA01 Transfer of patent application right

Effective date of registration: 20180117

Address after: 518057 Nanshan District science and technology, Guangdong Province, South Road, No. 55, No.

Applicant after: ZTE Corporation

Applicant after: China Citic Bank Co., Ltd.

Address before: 518057 Nanshan District science and technology, Guangdong Province, South Road, No. 55, No.

Applicant before: ZTE Corporation

TA01 Transfer of patent application right
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170104

WD01 Invention patent application deemed withdrawn after publication