业务请求处理方法和装置的制造方法

文档序号:8258846阅读:182来源:国知局
业务请求处理方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据处理技术领域,特别是涉及一种业务请求处理方法和装置。
【背景技术】
[0002]目前,在关系型数据库系统以及非分布式数据库系统中主要采用应用与数据库直连的架构。这种架构的数据库系统在处理业务请求时,应用直接向数据库发送业务请求,数据库返回相应的响应结果至应用。
[0003]采用现有的这种业务请求处理方案,当数据库当前处理的业务请求数量达到数据库可支持的上限(数据库的连接数达到上限),在有新的应用向数据库发送业务请求时,数据库接收到业务请求后由于没有空闲的连接可提供给该应用,因此,会返回业务请求失败的消息至该应用。而该应用在接收到请求失败的消息后,会再次向数据库发送业务请求,而如果数据库仍没有空闲的连接则会再次返回业务请求失败的消息至该应用。该应用以及数据库会重复上述操作,直至数据库中出现空闲的连接提供给该应用进行业务请求处理。
[0004]可见,现有的这种业务请求处理方案,当数据库当前处理的业务请求数量达到数据库可支持的上限,在有新的应用向数据库发送业务请求时,一方面,由于数据库直接向该应用返回业务请求失败的消息,因此,会影响用户的使用体验。同时,使用该应用需要重复发送业务请求直至请求成功,在影响用户的使用体验的同时也会增加应用所在终端以及网络的操作负担。另一方面,由于数据库要重复多次判断是否存在空闲连接以及向应用返回业务请求失败的消息,同样也会增加数据库的操作负担。

【发明内容】

[0005]鉴于上述现有的问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的业务请求处理方法和装置。
[0006]依据本发明的一个方面,提供了一种业务请求处理方法,包括:拦截应用向数据库发送的业务请求;判断连接池中是否存在与所述数据库的空闲连接;若不存在,则保存所述业务请求,并按照设定规则持续判断所述连接池中是否存在所述与所述数据库的空闲连接,直至所述连接池中出现所述空闲连接;选择出现的所述空闲连接,并使用选择的所述空闲连接将所述业务请求发送至所述数据库。
[0007]根据本发明的另一方面,提供了一种业务请求处理装置,所述业务请求处理装置包括:第一拦截模块,用于拦截应用装置向数据库装置发送的业务请求;判断模块,用于判断连接池中是否存在与数据库装置之间的空闲连接;第一执行模块,用于若所述判断模块的判断结果为不存在空闲连接时,则保存所述业务请求,并按照设定规则持续判断所述连接池中是否存在所述与所述数据库装置之间的空闲连接,直至所述连接池中出现所述空闲连接;发送模块,用于选择出现的所述空闲连接,并使用选择的所述空闲连接将所述业务请求发送至所述数据库装置。
[0008]通过本发明,在数据库系统尤其是非分布式数据库系统如关系型数据库系统中,拦截应用向数据库发送的业务请求,从连接池中选择与数据库之间的空闲连接来发送给业务请求,当连接池中存在空闲连接时,则可直接将业务请求通过空闲连接发送至数据库,当连接池中不存在空闲连接时,仍然正常接受应用的业务请求,待出现空闲连接时即将该业务请求发送至数据库进行处理,而不会向应用返回错误或失败消息。可见,应用只需发送一次业务请求,即可保证业务请求被数据库处理,既能够避免用户接收到业务请求失败的消息导致使用体验降低,又能够避免应用重复发送业务请求,因此,既能够降低应用所在终端以及网络的操作负担又能够提升用户的使用体验。此外,本发明中公开的业务信息处理方案中,仅是在数据库存在空闲连接时将业务请求发送至数据库处理,数据库无需重复判断自身是否存在空闲连接更不需要向应用返回业务请求失败的消息,因此,能够有效降低数据库的操作负担。
[0009]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0010]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0011]图1是根据本发明实施例一的一种业务请求处理方法的步骤流程示意图;
[0012]图2是根据本发明实施例二的一种业务请求处理方法的步骤流程示意图;
[0013]图3是根据本发明实施例三的一种业务请求处理方法的步骤流程示意图;
[0014]图4是根据本发明实施例四的一种业务请求处理装置的结构示意图;
[0015]图5是根据本发明实施例五的一种业务请求处理装置的结构示意图。
【具体实施方式】
[0016]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0017]实施例一
[0018]参照图1,示出了本发明实施例一的一种业务请求处理方法的步骤流程示意图。
[0019]本实施例的业务请求处理方法包括以下步骤:
[0020]步骤S102:拦截应用向数据库发送的业务请求。
[0021]其中,业务请求为应用可以向数据库发送的任意业务请求,例如:请求获取某用户号码的请求、获取套餐剩余流量值的请求等。
[0022]需要说明的是,本实施例中可以由设置在应用和数据库之间的中间件来拦截应用向数据库发送的业务请求,也可以由其他任意适当的装置来拦截。
[0023]步骤S104:判断连接池中是否存在与数据库的空闲连接。
[0024]在连接池中依据数据库的可支持的连接的信息,为数据库建立相应地连接。当连接池中与数据库的连接被业务请求占用时,则连接的当前状态为忙碌,当连接池中与数据库的连接未被业务请求占用时,则连接的当前状态为空闲。在拦截到业务请求后,从连接池中选择一个与数据库的空闲连接来向数据库发送该业务请求。
[0025]步骤S106:若连接池中不存在与数据库的空闲连接,则保存业务请求,并按照设定规则持续判断连接池中是否存在与数据库的空闲连接,直至连接池中出现空闲连接。
[0026]需要说明的是,业务请求可以存放入处理队列中,也可以存放入预设的缓存中,或者采用其它任意适当的存放形式。
[0027]在实际实现过程中,本领域技术人员可以根据实际需求设置持续判断连接池中是否存在与数据库之间的空闲连接的具体规则。例如:每隔设定的时间间隔轮询连接池中的与数据库之间的各连接的状态,以判断是否存在空闲连接。
[0028]步骤S108:选择出现的空闲连接,并使用选择的空闲连接将业务请求发送至数据库。
[0029]选择空闲连接将业务请求发送至数据库,数据库中由于存在空闲连接因此能够保证该业务请求被处理。
[0030]通过本实施例提供的业务请求处理方法,在数据库系统尤其是非分布式数据库系统如关系型数据库系统中,拦截应用向数据库发送的业务请求,从连接池中选择与数据库之间的空闲连接来发送给业务请求,当连接池中存在空闲连接时,则可直接将业务请求通过空闲连接发送至数据库,当不存在空闲连接时,仍正常接受应用的业务请求,待出现空闲连接时即将该业务请求发送至数据库进行处理,而不会向应用返回错误或者失败消息。可见,应用只需发送一次业务请求,即可保证业务请求被数据库处理,既能够避免用户接收到业务请求失败的消息导致使用体验降低,又能够避免应用重复发送业务请求,因此,既能够降低应用所在终端以及网络的操作负担又能够提升用户的使用体验。此外,仅是在数据库存在空闲连接时将业务请求发送至数据库处理,数据库无需重复判断自身是否存在空闲连接更不需要向应用返回业务请求失败的消息,因此,能够有效降低数据库的操作负担。
[0031]实施例二
[0032]参照图2,示出了本发明实施例二的一种业务请求处理方法的步骤流程示意图。
[0033]本实施例的业务请求处理方法包括以下步骤:
[0034]步骤S202:中间件拦截应用向数据库发送的业务请求。
[0035]其中,本实施例中由中间件来拦截应用向数据库发送的业务请求,中间件设置于应用和数据库之间。所谓的之间并非是物理意义上的之间,而是由于中间件拦截应用与数据库之间发送的数据,因此,才称其为设置于应用和数据库之间中间件。
[0036]需要说明的是,应用、中间件以及数据库可以设置在同一台设备上,也可以各自设置在一台设备上,或者两两组合设置在不同的设备上。一个中间件可以设置于多个应用和一个数据库之间即为每个数据库设置
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1