发明内容
本发明要解决的技术问题是一种提供网络服务的方法及装置,能够提供对网络服务请求处理的准确性。
为解决上述技术问题,本发明的一种提供网络服务的方法,包括:
服务器在接收到用户终端针对网络服务的第一请求后,对该第一请求进行处理,存储对所述第一请求的响应数据,将所述响应数据返回给用户终端,并在所述响应数据中携带处理该第一请求的服务器所在机房的机房号。
进一步地,所述方法还包括:
所述服务器在接收到针对网络服务的后续请求后,判断所述后续请求中携带的机房号是否是所述服务器所在机房的机房号,如果是,则对该后续请求进行处理;如果不是,则将该后续请求转发给对应机房的服务器。
进一步地,所述将该后续请求转发给对应机房的服务器,包括:
所述服务器通过内存数据队列将所述后续请求转发给所述后续请求中携带的机房号所对应机房中的服务器。
进一步地,所述方法还包括:
所述服务器在接收到请求后,判断请求中是否携带有机房号,如果未携带有机房号,则确定接收到用户终端针对网络服务的第一请求;如果携带有机房号,则确定接收到针对网络服务的后续请求。
进一步地,一种获取网络服务的方法,包括:
用户终端针对网络服务发送第一请求,接收服务器对该第一请求的响应数据,并存储所述响应数据中携带的处理该第一请求的服务器所在机房的机房号;
所述用户终端在针对所述网络服务发送后续请求时,在所述后续请求中携带所述处理该第一请求的服务器所在机房的机房号。
进一步地,一种服务器,包括:接收单元、处理单元和响应单元,其中:
所述接收单元,用于接收用户终端针对网络服务的第一请求;
所述处理单元,用于在所述接收单元接收到用户终端针对网络服务的第一请求后,对该第一请求进行处理,存储对所述第一请求的响应数据;
所述响应单元,用于将所述响应数据返回给用户终端,并在所述响应数据中携带处理该第一请求的服务器所在机房的机房号。
进一步地,所述接收单元,还用于接收针对网络服务的后续请求;
所述处理单元,还用于在所述接收单元接收到针对网络服务的后续请求后,判断所述后续请求中携带的机房号是否是所述服务器所在机房的机房号,如果是,则对该后续请求进行处理;如果不是,则将该后续请求转发给对应机房的服务器。
进一步地,所述处理单元将该后续请求转发给对应机房的服务器,包括:通过内存数据队列将所述后续请求转发给所述后续请求中携带的机房号所对应机房中的服务器。
进一步地,所述接收单元,还用于在接收到请求后,判断请求中是否携带有机房号,如果未携带有机房号,则确定接收到用户终端针对网络服务的第一请求;如果携带有机房号,则确定接收到针对网络服务的后续请求。
进一步地,一种用户终端,包括:第一请求单元、存储单元和第二请求单元,其中:
所述第一请求单元,用于针对网络服务发送第一请求,接收服务器对该第一请求的响应数据;
所述存储单元,用于存储所述响应数据中携带的处理该第一请求的服务器所在机房的机房号;
所述第二请求单元,用于在针对所述网络服务发送后续请求时,在所述后续请求中携带所述处理该第一请求的服务器所在机房的机房号。
综上所述,本申请通过跨机房服务器之间的请求直接传输取代数据同步,来达到对请求进行及时响应的效果。利用此方法绕过服务器数据同步的过程,直接将每个请求发送至一个服务器来进行处理,而后再进行数据同步,不但加大了请求处理的准确性,也缩短了请求反馈的时间,增加用户体验的同时保护服务供应商的利益。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图3所示,本申请的提供网络服务的方法,包括:
步骤301:域名解析服务器接收用户终端针对网络服务的第一请求(第一个需要被传输的请求),将与该第一请求匹配的网络服务对应的域名随机解析到该网络服务所对应的多个IP上,然后随机将该第一请求发给不同网络服务IP对应的不同服务器中的一台;
步骤302:其中一台服务器接收到第一请求后,对该请求进行处理,对第一请求的响应数据进行存储,并将响应数据返回给用户终端,并在响应数据中携带处理该第一请求的服务器所在机房的机房号;
步骤303:用户终端接收响应数据,发送针对网络服务的后续请求(第二请求),并在后续请求中携带响应数据中携带的处理第一请求的服务器所在机房的机房号;
步骤304:域名解析服务器接收后续请求,随机将该请求分配至不同网络服务IP对应的不同服务器中的一台;
步骤305:接收到后续请求的服务器判断该请求中携带的机房号是否是本机房的机房号,如果是,那么接收并处理此次请求;如果不是,则将该请求转发给对应机房的服务器。
服务器将后续请求转发给对应机房的服务器,包括:通过内存数据队列将后续请求转发给后续请求中携带的机房号所对应机房中的服务器。最终接收了后续请求的服务器对请求进行处理,并将处理结果储存,结束此次所有请求的响应,并同步自身数据给其他机房的服务器。
本申请中服务器在接收到域名解析服务器发送的请求后,判断请求中是否携带有机房号,如果未携带有机房号,则确定接收到用户终端针对网络服务的第一请求;如果携带有机房号,则确定接收到针对网络服务的后续请求。
本申请中还提供了一种获取网络服务的方法,所述方法包括:
步骤一:用户终端针对网络服务发送第一请求,接收服务器对该第一请求的响应数据,并存储所述响应数据中携带的处理该第一请求的服务器所在机房的机房号;
步骤二:用户终端在针对网络服务发送后续请求时,在后续请求中携带所述处理该第一请求的服务器所在机房的机房号。
如图4所示,本申请还提供了一种提供网络服务的系统,可以称为分布式单点多服务数据同步系统,具体包括:
域名解析服务器,用于接收用户终端发送的请求,将与该请求匹配的网络服务对应的域名随机解析到该网络服务所对应的多个IP上,然后随机将该请求发给不同网络服务IP对应的不同服务器中的一台。
服务器,用于接收到第一请求后,对该请求进行处理,对第一请求的响应数据进行存储,并将响应数据返回给用户终端,并在响应数据中携带处理该第一请求的服务器所在机房的机房号;接收到后续请求后,判断该请求中携带的机房号是否是本机房的机房号,如果是,那么接收并处理此次请求;如果不是,则将该请求转发给对应机房的服务器。
服务器通过内存数据队列将后续请求转发给后续请求中携带的机房号所对应机房中的服务器。内存数据队列,位于服务器内存中,用于服务器间的请求传输。内存数据队列基于内存高速的处理能力,以将近优于硬盘数据同步10倍的处理速度传输服务器接收的各种请求。
应用示例:
下面以广告投放系统为例,广告投放系统中存在广告投放和广告监测两种服务。简单来说,某个人打开某个网页,网页上放置广告的位置会向广告投放服务发出投放请求。投放系统会根据一系列规则选出一个广告展示给这个人看。在广告展示后,还会发出一次广告监测请求到广告监测服务,监测服务会记录下这次广告被展示的数据。这里假定服务a是广告投放服务,服务b是广告监测服务。服务a要用到由服务b产生的广告展示次数数据。假如在某一时刻,某一广告X的展示次数为3(内存数据库保存):
当某一用户发出投放请求(请求X广告)到M机房,然后监测请求也到了M机房,这时服务b会判断出这次监测请求所对应的投放请求是同一个机房。那么就直接将内存数据库中X的值变为4。由于浏览器缓存的作用,这个用户如果在极短的时内再次请求X广告,依然是将投放请求发向M机房,那么此时用到的数据是X=4,是正确的。
如果监测请求发向的不是M机房,而是N机房。那么N机房的服务b就会判断出这次监测请求所对应的投放请求是在M机房。就会将这次监测请求的数据放入数据队列,由数据队列将此数据迅速的写到M机房的内存数据库中。这时如果用户再次发出投放请求到M机房,所用到的数据依然是正确的M=4。
如图5所示,本申请还提供了一种服务器,包括:接收单元、处理单元和响应单元,其中:
接收单元,用于接收用户终端针对网络服务的第一请求;
处理单元,用于在接收单元接收到用户终端针对网络服务的第一请求后,对该第一请求进行处理,存储对第一请求的响应数据;
响应单元,用于将响应数据返回给用户终端,并在响应数据中携带处理该第一请求的服务器所在机房的机房号。
接收单元,还用于接收针对网络服务的后续请求;
处理单元,还用于在接收单元接收到针对网络服务的后续请求后,判断后续请求中携带的机房号是否是服务器所在机房的机房号,如果是,则对该后续请求进行处理;如果不是,则将该后续请求转发给对应机房的服务器。
处理单元将该后续请求转发给对应机房的服务器,包括:通过内存数据队列将后续请求转发给后续请求中携带的机房号所对应机房中的服务器。
接收单元,还用于在接收到请求后,判断请求中是否携带有机房号,如果未携带有机房号,则确定接收到用户终端针对网络服务的第一请求;如果携带有机房号,则确定接收到针对网络服务的后续请求。
如图6所示,本申请还提供了一种用户终端,包括:第一请求单元、存储单元和第二请求单元,其中:
第一请求单元,用于针对网络服务发送第一请求,接收服务器对该第一请求的响应数据;
存储单元,用于存储响应数据中携带的处理该第一请求的服务器所在机房的机房号;
第二请求单元,用于在针对网络服务发送后续请求时,在后续请求中携带处理该第一请求的服务器所在机房的机房号。
本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。