数据访问系统、方法及路由服务器、配置中心服务器与流程

文档序号:12462669阅读:189来源:国知局
数据访问系统、方法及路由服务器、配置中心服务器与流程

本申请实施例涉及分布式平台技术领域,更具体的涉及一种数据访问系统、方法及路由服务器、配置中心服务器。



背景技术:

随着数据库技术的迅速发展,越来越多的企业开始采用数据库存储数据。例如对于银行企业来讲,会将其自身的用户的银行卡信息、贷款信息等数据存储在数据库中。

随着时间流逝,数据库中的数据是不断增长的,例如银行企业中用户是不断增长的,且用户相应的数据也是不断增长的。随着数据库中数据量的增长,访问数据库的用户不断增多,必然会出现高并发、大数据量的访问数据库的场景,由于同时访问数据库的用户过多,且数据库存储的数据量较大,会导致数据库的访问效率降低。



技术实现要素:

有鉴于此,本发明提供了一种数据访问系统、方法及路由服务器、配置中心服务器,以克服现有技术中由于数据库中存储的数据量较大,当同时访问数据库的用户过多时,会导致数据库的访问效率降低的问题。

为实现上述目的,本发明提供如下技术方案:

一种数据访问系统,包括:

路由服务器,用于接收目标用户发送的请求报文,所述请求报文中携带有目标用户身份标识;解析所述请求报文,获得所述目标用户身份标识,并发送至配置中心服务器;接收所述配置中心服务器发送的目标应用服务器的访问路径信息,所述目标应用服务器用于访问存储所述目标用户相应的数据的目标数据库服务器;以及依据所述目标应用服务器的访问路径信息,从所述目标数据库服务器中获得所述目标用户相应的数据,并反馈至所述目标用户;

所述配置中心服务器,用于将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应数据的目标数据库服务器的目标标识ID;依据预先存储的各数据库服务器的标识ID相应的应用服务器的访问路径信息,获得所述目标标识ID相应的目标应用服务器的访问路径信息,并反馈至所述路由服务器;

多个数据库服务器,每一数据库服务器用于存储满足预设条件的各用户相应的数据,其中,预设条件包括各用户相应的用户身份标识进行所述预设算法处理,获得的数据库服务器的标识ID与存储自身相应数据的数据库服务器的标识ID相同。

其中,所述目标应用服务器的访问路径信息的个数为多个,所述路由服务器在依据所述目标应用服务器的访问路径信息,从所述目标数据库服务器中获得所述目标用户相应的数据时,具体用于:

从各目标应用服务器的访问路径信息中,确定一目标访问路径信息;

将所述请求报文发送至具有所述目标访问路径信息的第一目标应用服务器中;

接收所述第一目标应用服务器从所述目标数据库服务器中获得的所述目标用户相应的数据。

其中,所述请求报文还携带有组件标识ID,所述组件标识ID用于指示所述请求报文的请求类型;

所述路由服务器在解析所述请求报文,获得所述目标用户身份标识时,具体用于:

从预先存储的各组件标识ID相应的用户身份类型中,获得所述目标组件标识ID对应的目标用户身份类型;

依据所述目标用户身份类型,从所述请求报文中解析出所述目标用户身份标识。

其中,所述配置中心服务器在将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应数据的目标数据库服务器的目标标识ID时,具体用于:

将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应的数据的目标存储区域标识;

从预先存储的各数据库服务器的标识相应的存储区域标识中,获得所述目标存储区域标识相应的目标数据库服务器的目标标识。

其中,每一数据库服务器包括多个存储区域,每一存储区域对应一存储区域标识,每一数据库服务器在存储满足预设条件的各用户相应的数据时,具体用于:

每一存储区域存储满足所述预设条件的各用户相应的数据,所述预设条件包括各用户相应的用户身份标识进行所述预设算法处理,获得的存储区域标识与存储自身相应的数据的存储区域的存储区域标识相同。

一种数据访问方法,应用于路由服务器,所述数据访问方法包括:

接收目标用户发送的请求报文,所述请求报文中携带有目标用户身份标识;

解析所述请求报文,获得所述目标用户身份标识,并发送至配置中心服务器,以便所述配置中心服务器将所述目标用户身份标识进行预设算法处理,获得目标应用服务器的访问路径信息,所述目标应用服务器用于访问存储所述目标用户相应数据的目标数据库服务器;

接收所述配置中心服务器发送的所述目标应用服务器的访问路径信息;

依据所述目标应用服务器的访问路径信息,从所述目标数据库服务器中获得所述目标用户相应的数据,并反馈至所述目标用户。

其中,所述目标应用服务器的访问路径信息的个数为多个,所述依据所述目标应用服务器的访问路径信息,从所述目标数据库服务器中获得所述目标用户相应的数据包括:

从各目标应用服务器的访问路径信息中,确定一目标访问路径信息;

将所述请求报文发送至具有所述目标访问路径信息的第一目标应用服务器中;

接收所述第一目标应用服务器从所述目标数据库服务器中获得的所述目标用户相应的数据。

其中,所述请求报文还携带有组件标识ID,所述组件标识ID用于指示所述请求报文的请求类型;

所述解析所述请求报文,获得所述目标用户身份标识包括:

从预先存储的各组件标识ID相应的用户身份类型中,获得所述目标组件标识ID对应的目标用户身份类型;

依据所述目标用户身份类型,从所述请求报文中解析出所述目标用户身份标识。

一种数据访问方法,应用于配置中心服务器,所述数据访问方法包括:

接收路由服务器发送的目标用户身份标识,所述目标用户身份标识是所述路由服务器通过接收到的目标用户发送的请求报文获得的;

将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应数据的目标数据库服务器的目标标识ID;

依据预先存储的各数据库服务器的标识ID相应的应用服务器的访问路径信息,获得所述目标标识ID相应的目标应用服务器的访问路径信息;

将所述目标应用服务器的访问路径信息反馈至所述路由服务器,以便所述路由服务器依据所述目标应用服务器的访问路径信息,从所述目标数据库服务器中获得所述目标用户相应的数据,并反馈至所述目标用户。

其中,所述将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应数据的目标数据库服务器的目标标识ID包括:

将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应的数据的目标存储区域标识;

从预先存储的各数据库服务器的标识相应的存储区域标识中,获得所述目标存储区域标识相应的目标数据库服务器的目标标识。

一种路由服务器,包括:

接收模块,用于接收目标用户发送的请求报文,所述请求报文中携带有目标用户身份标识;

解析模块,用于解析所述请求报文,获得所述目标用户身份标识,并发送至配置中心服务器,以便所述配置中心服务器将所述目标用户身份标识进行预设算法处理,获得目标应用服务器的访问路径信息,所述目标应用服务器用于访问存储所述目标用户相应数据的目标数据库服务器;

获取目标应用服务器模块,用于接收所述配置中心服务器发送的所述目标应用服务器的访问路径信息;

反向代理转发模块,用于依据所述目标应用服务器的访问路径信息,从所述目标数据库服务器中获得所述目标用户相应的数据,并反馈至所述目标用户。

一种配置中心服务器,包括:

接收模块,用于接收路由服务器发送的目标用户身份标识,所述目标用户身份标识是所述路由服务器通过接收到的目标用户发送的请求报文获得的;

获得目标标识模块,用于将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应数据的目标数据库服务器的目标标识ID;

获得访问路径模块,用于依据预先存储的各数据库服务器的标识ID相应的应用服务器的访问路径信息,获得所述目标标识ID相应的目标应用服务器的访问路径信息;

反馈模块,用于将所述目标应用服务器的访问路径信息反馈至所述路由服务器,以便所述路由服务器依据所述目标应用服务器的访问路径信息,从所述目标数据库服务器中获得所述目标用户相应的数据,并反馈至所述目标用户。

经由上述的技术方案可知,与现有技术相比,本发明实施例提供了一种数据访问系统,数据存储在多个数据库服务器中,且不同的数据库服务器存储有不同用户相应的数据,由于不同的数据库服务器存储有不同用户相应的数据,与现有技术中将所有用户的数据存储在同一数据库而言,大大降低了各数据库服务器存储的数据量。且通过利用对用户身份标识进行预设算法处理,获得存储该用户相应数据的数据库服务器的标识ID的方式,建立路由服务器、应用服务器和数据库服务器之间的关联关系,从而使得用户能够访问到相应的数据。当用户访问量较大时,路由服务器会依据各用户发送的请求报文,通过不同的应用服务器访问不同的数据库服务器,从而降低了每一数据库服务器的用户访问量,提高了每一数据库服务器的访问效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种数据访问系统的结构示意图;

图2为本申请实施例提供的一种数据访问方法的信令图;

图3为本申请实施例提供的路由服务器在解析所述请求报文,获得所述目标用户身份标识时的具体实现方法的流程示意图;

图4为本申请实施例提供的配置中心服务器在将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应数据的目标数据库服务器的目标标识ID时的具体实现方法的流程示意图;

图5为本申请实施例提供的一种路由服务器的结构示意图;

图6为本申请实施例提供的实现解析模块的具体函数的示意图;

图7为本申请实施例提供的实现反向代理转发模块的具体函数的示意图;

图8为本申请实施例提供的实现解析模块52的具体函数的示意图;

图9为本申请实施例提供的一种配置中心服务器的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,为本申请实施例提供的一种数据访问系统的结构示意图,该数据访问系统包括:路由服务器11、配置中心服务器12以及多个数据库服务器13,其中:

路由服务器11用于接收用户发送的请求报文,并从请求报文中解析出用户身份标识;配置中心服务器12用于依据用户身份标识,从多个应用服务器14的访问路径中,获取目标应用服务器的访问路径信息。

各应用服务器14中都存储有自身能够访问的数据服务器的访问地址,且对于同一应用服务器14而言,其能够访问的数据服务器存储的数据都是一样的。

路由服务器11依据目标应用服务器的访问路径信息,从相应的数据库服务器13中获得相应的数据,并反馈至目标用户。

用户10可以为终端,例如电脑、智能手机等等。

下面基于图1所述数据访问系统,对本申请实施例提供的数据访问方法进行说明,如图2所示,为本申请实施例提供的一种数据访问方法的信令图,该方法包括:

步骤S201:路由服务器11用于接收目标用户发送的请求报文,所述请求报文中携带有目标用户身份标识;解析所述请求报文,获得所述目标用户身份标识,并发送至配置中心服务器12。

用户身份标识可以为银行卡号、登录名、登录密码、信用卡号等等。

用户10发出请求报文,例如,用户10通过其安装的浏览器访问中国建行的网页,并想查询其中国建行卡的余额,则该请求查询余额的报文中,就携带用该用户的用户身份标识。

步骤S202:配置中心服务器12将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应数据的目标数据库服务器的目标标识ID。

预设算法可以为MD5(Message Digest Algorithm,消息摘要算法第五版)算法、哈希算法等等。

此时要求,数据库服务器中存储数据的方式,也是依据各数据相应的用户身份标识进行预设运算,获得存储自身的数据库服务器的标识ID。

步骤S203:配置中心服务器12依据预先存储的各数据库服务器的标识ID相应的应用服务器的访问路径信息,获得所述目标标识ID相应的目标应用服务器的访问路径信息,并反馈至所述路由服务器11。

各应用服务器14中都存储有自身能够访问的数据服务器的访问地址,且对于同一应用服务器14而言,其能够访问的数据服务器存储的数据都是一样的。因此,当确定出目标应用服务器的访问路径信息后,目标应用服务器可以从任一数据库服务器中获取所述目标用户相应的数据。

步骤S204:路由服务器11接收所述配置中心服务器发送的目标应用服务器的访问路径信息;以及依据所述目标应用服务器的访问路径信息,从所述目标数据库服务器中获得所述目标用户相应的数据,并反馈至所述目标用户。

此时,目标用户会显示相应的界面。

其中,所述目标应用服务器的访问路径信息的个数为可以为一个或多个,当为多个时,可选的,步骤S204具体包括:

步骤S2041:从各目标应用服务器的访问路径信息中,确定一目标访问路径信息。

步骤S2042:将所述请求报文发送至具有所述目标访问路径信息的第一目标应用服务器中。

步骤S2043:接收所述第一目标应用服务器从所述目标数据库服务器中获得的所述目标用户相应的数据,并反馈至所述目标用户。

由于步骤S2041至步骤S2043是可选的步骤,因此用虚线框框出。

路由服务器11执行的步骤S2042以及步骤S2043为反向代理转发功能,该功能优选的可以是基于Nginx实现的。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。

本申请实施例中的路由服务器11可以是Nginx与lua结合而成的,通过Nginx的高性能与LUA的丰富扩展,来实现高并发路由解决方案。

Lua是一个小巧的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

发明实施例提供了一种数据访问系统,数据存储在多个数据库服务器中,且不同的数据库服务器存储有不同用户相应的数据,由于不同的数据库服务器存储有不同用户相应的数据,与现有技术中将所有用户的数据存储在同一数据库而言,大大降低了各数据库服务器存储的数据量。且通过利用对用户身份标识进行预设算法处理,获得存储该用户相应数据的数据库服务器的标识ID的方式,建立路由服务器、应用服务器和数据库服务器之间的关联关系,从而使得用户能够访问到相应的数据。当用户访问量较大时,路由服务器会依据各用户发送的请求报文,通过不同的应用服务器访问不同的数据库服务器,从而降低了每一数据库服务器的用户访问量,提高了每一数据库服务器的访问效率。

如图3所示,为本申请实施例提供的路由服务器在解析所述请求报文,获得所述目标用户身份标识时的具体实现方法的流程示意图,其中请求报文还携带有组件标识ID,所述组件标识ID用于指示所述请求报文的请求类型,该方法包括:

步骤S301:从预先存储的各组件标识ID相应的用户身份类型中,获得所述目标组件标识ID对应的目标用户身份类型。

可选的,请求报文中包括交易码,一般情况下,交易码有9位编码,其中前5位编码即为组件标识ID。

组件标识ID不同对应的用户身份类型不同,例如用户身份类型可能是登录名、银行卡号等等。

步骤S302:依据所述目标用户身份类型,从所述请求报文中解析出所述目标用户身份标识。

如图4所示,为本申请实施例提供的配置中心服务器在将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应数据的目标数据库服务器的目标标识ID时的具体实现方法的流程示意图,该方法包括:

步骤S401:将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应的数据的目标存储区域标识。

一个数据库服务器可以包括多个存储区域,每一存储区域对应一存储区域标识。

相应的,每一存储区域存储满足所述预设条件的各用户相应的数据,所述预设条件包括各用户相应的用户身份标识进行所述预设算法处理,获得的存储区域标识与存储自身相应的数据的存储区域的存储区域标识相同。

步骤S402:从预先存储的各数据库服务器的标识相应的存储区域标识中,获得所述目标存储区域标识相应的目标数据库服务器的目标标识。

本申请实施例还提供了一种路由服务器。如图5所示,为本申请实施例提供的一种路由服务器的结构示意图,该路由服务器包括:

接收模块51,用于接收目标用户发送的请求报文,所述请求报文中携带有目标用户身份标识。

解析模块52,用于解析所述请求报文,获得所述目标用户身份标识,并发送至配置中心服务器,以便所述配置中心服务器将所述目标用户身份标识进行预设算法处理,获得目标应用服务器的访问路径信息,所述目标应用服务器用于访问存储所述目标用户相应数据的目标数据库服务器。

如图6,为本申请实施例提供的实现解析模块的具体函数的示意图。

上述请求报文可以为Xml(Extensible Markup Language,可扩展标记语言)格式,其中,getDestApIP为实现解析模块52的函数,在实现该函数的过程中,涉及2个函数的调用,分别为:getApIpListFromZK函数以及getKeyValFromXml函数。

getApIpListFromZK函数的功能为依据目标用户身份标识到配置中心服务器内部获取目标应用服务器的访问路径信息。

当目标应用服务器有多个时,getKeyValFromXml函数的功能为根据负载均衡算法,从多个目标应用服务器的访问路径信息中,确定一个目标应用服务器的访问路径信息。

获取目标应用服务器模块53,用于接收所述配置中心服务器发送的所述目标应用服务器的访问路径信息。

反向代理转发模块54,用于依据所述目标应用服务器的访问路径信息,从所述目标数据库服务器中获得所述目标用户相应的数据,并反馈至所述目标用户。

可选的,目标应用服务器的访问路径信息的个数为多个,反向代理转发模块54包括:

确定单元,用于从各目标应用服务器的访问路径信息中,确定一目标访问路径信息;

发送单元,用于将所述请求报文发送至具有所述目标访问路径信息的第一目标应用服务器中;

接收单元,用于接收所述第一目标应用服务器从所述目标数据库服务器中获得的所述目标用户相应的数据,并反馈至所述目标用户。

如图7所示,为本申请实施例提供的实现反向代理转发模块的具体函数的示意图。

上述请求报文可以为Xml(Extensible Markup Language,可扩展标记语言)格式,其中,reverseProxy为实现解析模块52的函数,在实现该函数的过程中,涉及2个函数的调用,分别为getApIpListFromZK函数、loadbalance函数。

其中,loadbalance函数的功能为根据负载均衡算法,从多个目标应用服务器的访问路径信息中,确定一个目标应用服务器的访问路径信息,例如为第一目标应用服务器。然后getApIpListFromZK函数接收所述第一目标应用服务器从所述目标数据库服务器中获得的所述目标用户相应的数据,并反馈至所述目标用户。

可选的,请求报文还携带有组件标识ID,所述组件标识ID用于指示所述请求报文的请求类型,所述解析模块52包括:

获取单元,用于从预先存储的各组件标识ID相应的用户身份类型中,获得所述目标组件标识ID对应的目标用户身份类型;

解析单元,用于依据所述目标用户身份类型,从所述请求报文中解析出所述目标用户身份标识。

如图8所示,为本申请实施例提供的实现解析模块52的具体函数的示意图。

上述请求报文可以为Xml(Extensible Markup Language,可扩展标记语言)格式,其中,getXmlKeyVal为实现解析模块52的函数,在实现该函数的过程中,涉及3个函数的调用,分别为getKeyFromconf函数、getKeyValFromXml函数、readConf函数。

首先,readConf函数功能是读取预先存储的各组件标识ID相应的用户身份类型;getKeyFromconf函数从预先存储的各组件标识ID相应的用户身份类型中,获得目标组件标识ID对应的目标用户身份类型;getKeyValFromXml函数用于从Xml格式的请求报文中依据所述目标用户身份类型,获得目标用户身份标识。

如图9所述,为本申请实施例提供的一种配置中心服务器的结构示意图,该配置中心服务器包括:

接收模块91,用于接收路由服务器发送的目标用户身份标识,所述目标用户身份标识是所述路由服务器通过接收到的目标用户发送的请求报文获得的;

获得目标标识模块92,用于将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应数据的目标数据库服务器的目标标识ID;

获得访问路径模块93,用于依据预先存储的各数据库服务器的标识ID相应的应用服务器的访问路径信息,获得所述目标标识ID相应的目标应用服务器的访问路径信息;

反馈模块94,用于将所述目标应用服务器的访问路径信息反馈至所述路由服务器,以便所述路由服务器依据所述目标应用服务器的访问路径信息,从所述目标数据库服务器中获得所述目标用户相应的数据,并反馈至所述目标用户。

可选的,获得目标标识模块92包括:

第一获取单元,用于将所述目标用户身份标识进行预设算法处理,获得存储所述目标用户相应的数据的目标存储区域标识;

第二获取单元,用于从预先存储的各数据库服务器的标识相应的存储区域标识中,获得所述目标存储区域标识相应的目标数据库服务器的目标标识。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1