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

文档序号:8226139阅读:来源:国知局
标记为可用状态。
[0081]步骤S214:中间件根据各个连接的状态信息,从至少一个可用连接中选择一个可用连接。
[0082]本实施例中,可用连接为数据库运行状态正常,且未被业务请求占用空闲的连接,对应的连接状态为可用状态。
[0083]对于中间件从至少一个可用连接中选择一个可用连接的具体选择方式本实施例不作具体限制,当连接池中为该数据库分配的连接中存在多个空闲连接,中间件可以随机从中选择一个空闲连接,也可以按照连接空闲时间的长短选择一个空闲时间最长的连接,当然还可以按照其他的选择方式进行选择。
[0084]步骤S216:中间件将选择的可用连接的状态从可用状态更改为不可用状态,并使用选择的连接将业务请求发送至选择的数据库进行处理。
[0085]中间件通过将可用连接的连接状态更改为不可用状态,可以高效快速地判断出连接池中各个连接的连接状态,从而更为有效地为业务请求选择可用连接。
[0086]步骤S218:中间件拦截重新分配的数据库通过选择的连接返回的、对业务请求的响应结果,并将拦截到的响应结果发送至发送业务请求的应用。
[0087]数据库接收业务请求,在处理完该业务请求后,会通过之前中间件选择的连接返回对业务请求的响应结果。此时,中间件拦截该响应结果。
[0088]步骤S220:中间件将连接的状态从不可用状态更改为可用状态。
[0089]本步骤中,中间件在拦截到通过选择的连接返回的响应结果时,释放与选择的数据库之间的该连接,并将该连接的连接状态由不可用状态修改为可用状态,便于中间件为尚未得到处理的业务请求分配连接,提高连接的使用率。
[0090]需要说明的是,释放与该数据库之间的连接,并非在连接池中将该连接删除,而是将其放入空闲连接中,以供中间件需要与该数据库之间再次建立连接时调用。
[0091]步骤S222:中间件按照设定规则监测发生故障的数据库是否恢复正常运行,依据判断结果修改数据库的当前状态。
[0092]一种优选的中间件按照设定规则监测发生故障的数据库是否恢复正常运行,依据判断结果修改数据库的当前状态的方式如下:
[0093]中间件按照设定规则向发生故障的数据库发送连接请求;若接收到对连接请求的成功响应,则确定发生故障的数据库已恢复正常运行,在连接池中将已恢复正常运行的数据库对应的连接的状态设置为可用状态;若未接收到对连接请求的成功响应,则确定发生故障的数据库未恢复正常运行,返回执行中间件按照设定规则向发生故障的数据库发送连接请求的步骤。
[0094]其中,设定规则可以由本领域技术人员根据实际需求进行设置,例如:设置成每隔30秒钟向发生故障的数据库发送一次连接请求。
[0095]需要说明的是,本步骤并不局限于在步骤S220之后执行,本步骤可以在中间件判断出数据库发生故障后的任意时机执行,当然也包括与步骤S208至步骤S220中的任意步骤并行执行。
[0096]本实施例中的业务处理方法可以应用于多种数据库系统,优选地,将本实施例中的业务请求处理方法应用于非分布式数据库系统,更优选地,应用于关系型数据库系统。目前非分布式数据库系统如关系型数据库系统在处理业务请求时,当数据库在处理应用发送的某一业务请求(如处理一条SQL语句)的过程中发生故障时,通过对数据库进行切换,仅能保证切换后应用向数据库发送的业务请求被成功处理,但数据库发生故障时正在处理的业务请求则不会重新被执行,可见存在【背景技术】部分所指出的问题。通过将本实施例中提供的业务处理方法应用于关系型数据库系统能够效解决非分布式数据库系统中其存在的上述问题。
[0097]通过本实施例提供的业务请求处理方法,除具有实施例一中所述的业务请求方法的有益效果外,中间件还根据各数据库可支持的连接的信息生成连接池,在连接池中管理为各数据库建立的连接,同时,依据数据库的当前状态,来修改连接池中与数据库对应的各连接的状态,更便于中间件对各连接的管理。此外,本实施例提供的业务请求处理方法,还可以按照设定规则监测发生故障的数据库是否恢复正常运行,依据判断结果修改数据库的当前状态,在数据库恢复正常运行后,在中间件中将恢复正常运行的数据库对应的连接的状态设置为可用状态,中间件则可以通过该数据库对应的连接向数据库发送业务请求,能够对数据库进行高效利用。
[0098]实施例四
[0099]参照图4,示出了本发明实施例四的一种业务请求处理装置的结构示意图。
[0100]本实施例的业务请求处理装置可以设置于应用装置和多个数据库装置之间,业务请求处理装置包括:拦截模块302,用于拦截应用装置向数据库装置发送的业务请求;发送模块304,用于将业务请求发送至多个数据库装置中的一个当前状态为正常运行的数据库装置进行处理,并存储业务请求;执行模块306,用于当判断在业务请求的执行过程中,处理业务请求的数据库装置发生故障时,为业务请求重新分配一个当前状态为正常运行的数据库装置;重发送模块308,用于将业务请求发送至重新分配的数据库装置进行处理。
[0101]需要说明的是,业务请求处理装置、应用装置和多个数据库装置可以设置在同一设备中,也可以分别设置在不同的设备中。本实施例中对此不作具体限制。
[0102]通过本实施例提供的业务请求处理装置,拦截应用向数据库发送的业务请求,再将拦截到的业务请求发送至数据库进行处理,并存储该业务请求。这样,当判断在该业务请求的执行过程中,处理该业务请求的数据库装置发生故障时,可以为该业务请求重新分配一个正常运行的数据库来处理该业务请求。通过本实施例提供的业务请求处理装置,数据库装置发生故障时已进行处理但尚未处理完的业务请求可以重新分配正常运行的数据库装置来处理,一方面,由于业务请求被重新分配到集群中的数据库装置进行处理,因此,集群不会向应用装置返回业务请求失败的消息,相应地则不会影响用户的使用体验。另一方面,由于应用装置未接收到业务请求失败的消息,因此不会重复发送该业务请求,不会增加应用装置的负担。而业务请求处理装置在判断出处理业务请求的数据库装置发生故障时,可以及时将业务请求重新发送至集群中的其他正常运行的数据库装置,相较于现有的方案中需要向应用装置返回业务请求失败的消息后再由应用装置重新发送的业务请求而言能够缩短业务处理时间,因此,能够提升业务请求的处理效率。
[0103]实施例五
[0104]参照图5,示出了本发明实施例五的一种业务请求处理装置的结构示意图。
[0105]本实施例对实施例四中的业务请求处理装置进行了进一步优化,优化后的业务请求处理装置包括:拦截模块402,用于拦截应用装置向数据库装置发送的业务请求;发送模块404,用于将业务请求发送至多个数据库装置中的一个当前状态为正常运行的数据库装置进行处理,并存储业务请求;执行模块406,用于当判断在业务请求的执行过程中,处理业务请求的数据库装置发生故障时,为业务请求重新分配一个当前状态为正常运行的数据库装置;重发送模块408,用于将业务请求发送至重新分配的数据库装置进行处理。
[0106]优选地,执行模块406判断在业务请求的执行过程中,处理业务请求的数据库装置发生故障时:在已将业务请求发送至数据库装置进行处理后,接收到与数据库装置之间连接中断的消息之前,未拦截到数据库装置返回的、对业务请求的响应结果,则执行模块406确定在业务请求的执行过程中,处理业务请求的数据库装置发生故障。
[0107]优选地,执行模块406判断在业务请求的执行过程中,处理业务请求的数据库装置发生故障时:在将业务请求发送至数据库装置进行处理后,在预定时间内未拦截到数据库装置返回的、对业务请求的响应结果,则执行模块406确定在业务请求的执行过程中,处理业务请求的数据库装置发生故障。
[0108]优选地,本实施例的业务请求处理装置还包括:连接池生成模块410,用于在拦截模块402拦截应用装置向数据库装置发送的业务请求之前,根据多个数据库装置可支持的连接的信息,生成连接池,其中,连接池用于管理多个数据库装置可支持的连接。
[0109]优选地,本实施例的业务请求处理装置还包括:第一状态设置模块412,用于在连接池生成模块410根据多个数据库装置可支持的连接的信息,生成连接池之后,根据数据库装置的当前状态,将连接池中对应于各个数据库装置的各个连接设置为可用状态或不可用状态。
[0110]优选地,本实施例的业务请求处理装置还包括:第二状态设置模块414,用于当执行模块406判断数据库装置发生故障时,将连接池中对应于发生故障的数据库装置的所有连接的连接状态设置为不可用状态。
[0111]优选地,发送模块404包括:数据库选择模块4042,用于从多个当前状态为正常运行的数据库装置中选择一个数据库装置,获取中间件装置自身的连接池中对应于选择的数据库装置的各个连接的状态信息;可用连接选择模块4044,用于根据各个连接的状态信息,从至少一个可用连接中选择一个可用连接;以及业务请求发送模块4046,用于将选择的可用连接的状态从可用状态更改为不可用状态,并使用选择的连接将业务请求发送至选择的数据库装置进行处理;存储模块4048,用于存储业务请求。
[0112]优选地,执行模块406为业务请求重新分配一个当前状态为正常运行的数据库装置时,获取多个数据库装置的当前状态;根据获取的多个数据库装置的当前状态,确定当前状态为正常运行的至少一个数据库装置;从至少一个当前状态为正常运行的数据库装置中选择一个数据库装置。
[0113]优选地,重发送模块408包括:连接状态获取信息4082,用于获取连接池中对应于选择的数据库装置的各个连接的状态信息;可用连接选择模块4084,用于根据各个连接的状态信息,从至少一个可用连接中选择一个可用连接;业务请求重发送模块4086,用于将选择的可用连接的状态从可用状态更改为不可用状态,并使用选择的连接将业务请求发送至选择的数据库装置进行处理。
[0114]优选地,本实施例的业务请求处理装置还包括:响应结果拦截模块416,用于在重发送模块408将业务请求发送至重新分配的数据库装置进行处理之后,拦截重新分配的数据库装置通过选择的连接返回的、对业务请求的响应结果,并将拦截到的响应结果发送至发送业务请求的应用装置。
[0115]优选地,本实施例的业务请求处理装置还包括:第三状态设置模块418,用于在响应结果拦截模块416拦截重新分配的数据库装置通过选择的连接返回的、对业务请求的响应结果之后,将连接的状态从不可用状态更改为可用状态。<
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1