一种操作请求处理方法、装置、设备及系统制造方法及图纸

技术编号:21628484 阅读:45 留言:0更新日期:2019-07-17 10:57
本申请提供一种操作请求处理方法、装置、设备及系统,该方法包括:根据所接收到的操作请求生成携带所述操作请求的指定类型消息;将所述指定类型消息发送给解析数据库,所述指定类型消息用于指示所述解析数据库解析所述操作请求并返回解析结果;接收所述解析数据库返回的针对所述操作请求的解析结果;根据所述解析结果对所述操作请求进行处理。通过本申请的技术方案,中间件可以实现操作请求的解析,并可以为应用服务器提供定制化的服务(如读写分离服务、分库分表服务、注入分析服务等)。

An Operational Request Processing Method, Device, Equipment and System

【技术实现步骤摘要】
一种操作请求处理方法、装置、设备及系统
本申请涉及互联网
,尤其是一种操作请求处理方法、装置、设备及系统。
技术介绍
随着互联网的迅速发展,数据库的中间件技术在分布式数据库系统中得到了广泛应用。中间件是位于应用服务器与数据库之间的中转设备,并可以分别连接应用服务器和数据库。当应用服务器需要访问数据库时,则应用服务器需要与中间件建立一个通信连接1,且中间件需要与数据库建立一个通信连接2。当应用服务器需要使用SQL(StructuredQueryLanguage,结构化查询语言)语句对数据库中的数据进行操作时,会通过通信连接1将SQL语句发送至中间件,中间件通过通信连接2将该SQL语句发送至数据库。数据库执行接收到的该SQL语句,并通过中间件向该应用服务器返回该SQL语句的执行结果。但是,中间件在接收到SQL语句后,只是将SQL语句发送至数据库,中间件无法对SQL语句进行解析,更加无法为应用服务器提供定制化的服务。
技术实现思路
本申请提供一种操作请求处理方法,应用于中间件,所述方法包括:根据所接收到的操作请求生成携带所述操作请求的指定类型消息;将所述指定类型消息发送给解析数据库,所述指定类型消息用于指示所述解析数据库解析所述操作请求并返回解析结果;接收所述解析数据库返回的针对所述操作请求的解析结果;根据所述解析结果对所述操作请求进行处理。本申请提供一种操作请求处理装置,应用于中间件,所述装置包括:生成模块,用于根据所接收到的操作请求生成携带所述操作请求的指定类型消息;发送模块,用于将所述指定类型消息发送给解析数据库,所述指定类型消息用于指示所述解析数据库解析所述操作请求并返回解析结果;接收模块,用于接收所述解析数据库返回的针对所述操作请求的解析结果;处理模块,用于根据所述解析结果对所述操作请求进行处理。本申请提供一种中间件设备,所述中间件设备包括:处理器,用于根据所接收到的操作请求生成携带所述操作请求的指定类型消息;发射器,用于将所述指定类型消息发送给解析数据库,所述指定类型消息用于指示所述解析数据库解析所述操作请求并返回解析结果;接收器,用于接收所述解析数据库返回的针对所述操作请求的解析结果;所述处理器,还用于根据所述解析结果对所述操作请求进行处理。本申请提供一种操作请求处理系统,所述系统包括:中间件,用于根据所接收到的操作请求生成携带所述操作请求的指定类型消息,并将所述指定类型消息发送给解析数据库;解析数据库,用于解析所述指定类型消息中携带的操作请求,得到针对所述操作请求的解析结果,并将所述解析结果发送给所述中间件;所述中间件,还用于接收所述解析数据库返回的针对所述操作请求的解析结果,并根据所述解析结果对所述操作请求进行处理。基于上述技术方案,本申请实施例中,中间件在接收到操作请求之后,并不是直接将该操作请求发送给数据库,而是生成携带该操作请求的指定类型消息,并将指定类型消息发送给解析数据库,而解析数据库在接收到操作请求后,可以解析操作请求,并向中间件返回解析结果,但是解析数据库并不执行该操作请求(即不根据该操作请求对数据库中的数据进行操作)。中间件在接收到解析结果之后,就可以根据解析结果对操作请求进行处理。综上所述,在不影响用户行为的前提下,中间件可以实现操作请求的解析,并可以为应用服务器提供定制化的服务(如读写分离服务、分库分表服务、注入分析服务等)。附图说明为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。图1是本申请一种实施方式中的应用场景示意图;图2是本申请一种实施方式中的操作请求处理方法的流程图;图3是本申请一种实施方式中的操作请求处理装置的结构图。具体实施方式在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本申请实施例中提出一种操作请求处理方法,该方法可以应用于包括应用服务器、中间件和数据库的系统,中间件是位于应用服务器与数据库之间的中转设备,可以称为中间件设备,中间件可以分别连接应用服务器和数据库。应用服务器可以是用于访问数据库的客户端,数据库也可以是数据库服务器。在一个例子中,应用服务器、中间件和数据库可以部署在同一个设备。在另一个例子中,应用服务器、中间件和数据库也可以部署在不同的设备,如应用服务器、中间件和数据库均部署在独立的设备。参见图1所示,为本申请实施例的应用场景示意图,应用服务器的数量可以为一个或者多个,中间件的数量可以为一个,且数据库的数量可以为一个或者多个,对此数量不做限制。在一个例子中,中间件可以是位于应用服务器与数据库之间的中转设备,中间件封装有与应用服务器的操作系统、通信协议等相关的处理方法,从而可以为数据库提供统一的接口,使得应用服务器在更换操作系统和通信协议等底层配置之后,不需要改变数据库的程序代码,并且增强了数据库的可移植性。中间件还可以管理数据库的连接,减轻数据库的负担。具体的,若不使用中间件,应用服务器每次访问数据库时,均需要与数据库建立一个连接,当大量应用服务器并行访问数据库时,需要同时与数据库建立大量连接,由于建立连接是耗费时间和系统资源的操作,且数据库的并行处理能力有限,因此,应用服务器对数据库的访问效率大大降低。中间件可以预先与数据库建立多个空闲连接,并对这些连接进行保持和管理,当应用服务器通过中间件请求访问数据库时,该应用服务器先与中间件建立连接,然后,中间件从与数据库建立的连接中选择空闲连接,并将该空闲连接分配给应用服务器使用,等应用服务器使用完毕后,中间件回收该连接,从而提高了应用服务器对数据库的访问效率。其中,上述数据库包括但不限于MySQL(MyStructuredQueryLanguage,即关系型数据库管理系统)数据库,上述中间件与数据库之间的连接,可以包括但不限于JDBC(JavaDatabaseConnectivity,java数据库连接)。当然,上述MySQL和JDBC只是本申请的一个示例,对此数据库、连接均不做限制。基于上述应用场景,传统方式中,中间件在接收到操作请求后,直接将操作请求发送至数据库,由数据库执行操作请求,但是,中间件不会对操作请求进行解析,无法为应用服务器提供定制化的服务。针对上述发现,本申请实施例中,为了对应用服务器提供定制化的服务,提高用户体验,则采用如下方式:方式一、在中间件配置SQL解析器。中间件在接收到操作请求本文档来自技高网...

【技术保护点】
1.一种操作请求处理方法,其特征在于,应用于中间件,所述方法包括:根据所接收到的操作请求生成携带所述操作请求的指定类型消息;将所述指定类型消息发送给解析数据库,所述指定类型消息用于指示所述解析数据库解析所述操作请求并返回解析结果;接收所述解析数据库返回的针对所述操作请求的解析结果;根据所述解析结果对所述操作请求进行处理。

【技术特征摘要】
1.一种操作请求处理方法,其特征在于,应用于中间件,所述方法包括:根据所接收到的操作请求生成携带所述操作请求的指定类型消息;将所述指定类型消息发送给解析数据库,所述指定类型消息用于指示所述解析数据库解析所述操作请求并返回解析结果;接收所述解析数据库返回的针对所述操作请求的解析结果;根据所述解析结果对所述操作请求进行处理。2.根据权利要求1所述的方法,其特征在于,所述根据所接收到的操作请求生成携带所述操作请求的指定类型消息的过程,具体包括:若所述中间件用于提供指定类型服务,则根据所接收到的操作请求生成携带所述操作请求的指定类型消息。3.根据权利要求1所述的方法,其特征在于,所述根据所述解析结果对所述操作请求进行处理的过程,具体包括:若所述中间件用于提供指定类型服务,则根据所述解析结果对所述操作请求进行与所述指定类型服务对应的处理。4.根据权利要求3所述的方法,其特征在于,所述指定类型消息还携带所述指定类型服务的信息,且所述指定类型消息还用于指示所述解析数据库返回与所述指定类型服务对应的解析结果。5.根据权利要求3或4所述的方法,其特征在于,所述指定类型服务包括以下之一或者任意组合:读写分离服务、分库分表服务、注入分析服务;其中,与读写分离服务对应的解析结果包括:读类型或者写类型;与分库分表服务对应的解析结果包括:语句和库表信息的对应关系;与注入分析服务对应的解析结果包括:具有攻击语句或者不具有攻击语句。6.根据权利要求5所述的方法,其特征在于,所述根据所述解析结果对所述操作请求进行处理的过程,具体包括:当所述中间件提供读写分离服务时,若所述解析结果为读类型,则选取用于处理读服务的数据库,将所述操作请求发送给选取的数据库,以使该数据库执行所述操作请求;若所述解析结果为写类型,则选取用于处理写服务的数据库,将所述操作请求发送给选取的数据库,以使该数据库执行所述操作请求;当所述中间件提供分库分表服务时,则根据语句和库表信息的对应关系,将所述操作请求中的语句存储到所述库表信息对应...

【专利技术属性】
技术研发人员:侯宏元吴旭冬黄大鹏
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1