数据源的动态识别方法及装置、存储介质和电子装置与流程

文档序号:20370072发布日期:2020-04-14 13:02阅读:117来源:国知局
数据源的动态识别方法及装置、存储介质和电子装置与流程

本发明涉及计算机领域,具体而言,涉及一种数据源的动态识别方法及装置、存储介质和电子装置。



背景技术:

当今世界是一个充满着数据的互联网世界,充斥着大量的数据,这些数据都需要一个仓库来进行存放,这个仓库就是数据库。数据库在企业中具有不可或缺的地位,在业务数据量小的企业中,采用的是单一数据库(即单个数据库进行数据存储),在业务数据量庞大的企业中,则采用的是集群数据库(即多个数据库同时进行数据存储,避免单台机器宕机导致服务中断)。

目前传统的集群数据库采用的是多个库联动存储,当业务请求某条数据时,会随机从任意一个数据库中取出目标数据,该技术很好地解决了数据安全问题,但由于所有数据库存放着相同的数据,不便于管理,且容易造成空间的浪费,因此,会选择采取分库管理的架构模式,举例说,当前有三个项目a、b、c,计划让a库仅存放项目a的数据,同理b、c库存放各自项目的数据,并且每个库都进行主从同步以达到数据安全,分库模式促进数据管理。但是,现有技术中的该方式,业务请求无法准确去往所在数据库提取数据。

针对相关技术中的上述问题,目前尚未存在有效的解决方案。



技术实现要素:

本发明实施例提供了一种数据源的动态识别方法及装置、存储介质和电子装置,以至少解决相关技术中业务请求无法准确去往所在数据库提取数据的问题。

根据本发明的一个实施例,提供了一种数据源的识别方法,包括:获取与工程对应的验证消息;确定与所述验证消息对应的标识信息,并确定与所述标识信息对应的数据源;将所述工程所发起的请求发送到与所述标识信息对应的数据源。

根据本发明的另一个实施例,提供了一种数据源的识别装置,包括:获取模块,用于获取与工程对应的验证消息;确定模块,用于确定与所述验证消息对应的标识信息,并确定与所述标识信息对应的数据源;发送模块,用于将所述工程所发起的请求发送到与所述标识信息对应的数据源。

根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

通过本发明,通过获取与工程对应的验证消息,进而确定该与验证消息对应的标识信息,进一步地确定与标识信息对应的数据源,从而实现了准确查找到与工程对应的数据源,因此,可以准确的将工程所发起的请求发送到与标识信息对应的数据源,解决了相关技术中业务请求无法准确去往所在数据库提取数据的问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种数据源的动态识别方法的终端的硬件结构框图;

图2是根据本发明实施例的数据源的动态识别方法的流程图;

图3是根据本发明实施例的动态识别数据源的方法的示意图;

图4是根据本发明实施例的数据源的动态识别装置的结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

本申请实施例一所提供的方法实施例可以在终端、计算机终端或者类似的运算装置中执行。以运行在终端上为例,图1是本发明实施例的一种数据源的动态识别方法的终端的硬件结构框图。如图1所示,终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据源的动态识别方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端10的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种运行于上述终端的数据源的动态识别方法,图2是根据本发明实施例的数据源的动态识别方法的流程图,如图2所示,该流程包括如下步骤:

步骤s202,获取与工程对应的验证消息;

步骤s204,确定与验证消息对应的标识信息,并确定与标识信息对应的数据源;

步骤s206,将工程所发起的请求发送到与标识信息对应的数据源。

通过上述步骤s202至步骤s206,通过获取与工程对应的验证消息,进而确定该与验证消息对应的标识信息,进一步地确定与标识信息对应的数据源,从而实现了准确查找到与工程对应的数据源,因此,可以准确的将工程所发起的请求发送到与标识信息对应的数据源,解决了相关技术中业务请求无法准确去往所在数据库提取数据的问题。

需要说明的是,本申请中涉及到的验证消息,在具体应用场景中优选为session会话消息,当然也可以是其他验证消息,例如,token。即只要能够唯一确定工程的消息均是在本申请的保护范围之内的。此外,本申请中的标识信息在具体应用场景中可以是mycat标识信息。

在本实施例的一个可选实施方式中,对于步骤s202中涉及到的获取与工程对应的验证消息的方式,进一步可以包括:执行与工程对应的访问网页的操作,生成与工程对应的验证消息。

在本实施例的一个可选实施方式中,对于步骤s204中涉及到的确定与验证消息对应的标识信息的方式,进一步可以通过以下方式实现:

步骤s204-11,判断验证消息是否与缓存中预设的消息是否匹配;

步骤s204-12,在判断结果为是的情况下,在缓存中的标识集合中获取与验证消息对应的标识信息。

需要说明的是,在判断结果为否的情况下,设置与验证消息对应的标识信息,并将设置的标识信息缓存到标识集合中。

对于上述步骤s202和步骤s204中涉及到的方式,以验证消息为session会话消息,标识信息为mycat标识为例,进行进一步的说明,即工程通过注册/登录,生成唯一的session会话消息。判断该session会话消息是否在缓存中能查找到,如果能,则通过session会话信息在缓存中的session-mycat字典集中获取所需的mycat标识,否则,将该session会话消息与对应的数据源的mycat标识(每个数据源对应唯一的mycat标识)进行绑定,并缓存到session-mycat字典集。

进一步地,在本申请的再一个可选实施方式中红,对于步骤s204中涉及到的确定与所述标识信息对应的数据源的方式,可以是:

步骤s204-21,对标识信息与数据源进行匹配;

步骤s204-22,确定出与标识信息匹配的数据源。

在本申请的再一个可选实施方式中,本申请中的方法步骤还可以包括:

步骤s208,通过与数据源对应的主数据库和从数据库响应于请求进行数据处理,并向工程返回请求结果;其中,主数据库与从数据库的数据同步,主数据库用于执行写操作,从数据库用于执行读操作。其中,在主数据库出现宕机的情况下,由从数据库执行所有读写操作;或,在从数据库出现宕机的情况下,由主数据库执行所有读写操作。

也就是说,数据源接收到数据请求后,由主、从数据库来开展工作,最终返回请求结果给请求方,其中,主、从数据库采用读写分离,主库执行写操作,从库执行读操作,并数据同步,当一方出现宕机问题时,另一方则承担所有数据请求,该部分也可以扩展为一主多从的架构,增强数据安全性。

下面结合本申请的可选实施方式,对本申请进行举例说明;

图3是根据本发明实施例的动态识别数据源的方法的示意图,基于图3,本可选实施方式提供的动态识别数据源的方法步骤包括:

步骤s11,工程通过注册/登录,生成唯一的session会话消息。

步骤s12,判断该session会话消息是否在缓存中能查找到;

其中,如果能,则通过session会话信息在缓存中的session-mycat字典集中获取所需的mycat标识,否则,将该session会话消息与对应的数据源的mycat标识(每个数据源对应唯一的mycat标识)进行绑定,并缓存到session-mycat字典集。

步骤13,工程发起业务请求,带着上述获取到的mycat标识进行api数据访问。

步骤14,结合mycat数据库中间件,数据访问模块携带mycat标识与mycat进行数据源连接,mycat中间件接收mycat标识进行检验,与对应数据源进行动态匹配后,将业务请求连接转发到对应数据源。

步骤15,数据源接收到数据请求后,由主、从数据库来开展工作,最终返回请求结果给请求方;

其中,主、从数据库采用读写分离,主库执行写操作,从库执行读操作,并数据同步,当一方出现宕机问题时,另一方则承担所有数据请求,该部分也可以扩展为一主多从的架构,增强数据安全性。

需要说明的是,需要预先整理所有工程与所有数据源的信息,以便上述步骤s12的顺利执行。mycat中间件预先配置好多个数据源的节点信息,mycat标识所携带的信息就是数据源的节点信息,该标识供mycat中间件识别数据源使用,通过对多数据源的动态匹配,更好地体现了数据的安全管理。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

在本实施例中还提供了一种数据源的识别装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是根据本发明实施例的数据源的识别装置的结构框图,如图4所示,该装置包括:获取模块42,用于获取与工程对应的验证消息;确定模块44,用于确定与验证消息对应的标识信息,并确定与标识信息对应的数据源;发送模块46,用于将工程所发起的请求发送到与标识信息对应的数据源。

可选地,本申请中的确定模块44进一步可以包括:判断单元,用于判断验证消息是否与缓存中预设的消息是否匹配;获取单元,用于在判断结果为是的情况下,在缓存中的标识集合中获取与验证消息对应的标识信息。

可选地,本申请中的确定模块44还可以包括:处理单元,用于在判断结果为否的情况下,设置与验证消息对应的标识信息,并将设置的标识信息缓存到标识集合中。

可选地,本申请中的确定模块44进一步可以包括:匹配单元,用于对标识信息与数据源进行匹配;确定单元,用于确定出与标识信息匹配的数据源。

可选地,本申请中的获取模块42进一步还用于,执行与工程对应的访问网页的操作,生成与工程对应的验证消息。

可选地,本申请的装置还可以包括:处理模块,用于通过与数据源对应的主数据库和从数据库响应于请求进行数据处理,并向工程返回请求结果;其中,主数据库与从数据库的数据同步,主数据库用于执行写操作,从数据库用于执行读操作;其中,在主数据库出现宕机的情况下,由从数据库执行所有读写操作;或,在从数据库出现宕机的情况下,由主数据库执行所有读写操作。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

实施例3

本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,获取与工程对应的验证消息;

s2,确定与验证消息对应的标识信息,并确定与标识信息对应的数据源;

s3,将工程所发起的请求发送到与标识信息对应的数据源。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,获取与工程对应的验证消息;

s2,确定与验证消息对应的标识信息,并确定与标识信息对应的数据源;

s3,将工程所发起的请求发送到与标识信息对应的数据源。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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