基于数据缓存同步的分布式业务请求处理方法及系统转让专利

申请号 : CN201210373171.X

文献号 : CN103716343B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王忻

申请人 : 重庆新媒农信科技有限公司

摘要 :

本发明提供了一种基于数据缓存同步的分布式业务请求处理方法和系统,每当一台应用服务器通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,该应用服务器将新获取的业务数据缓存于本地缓存区并进行备份,且将备份的业务数据分发至其它应用服务器进行缓存,实现了分布式业务服务系统中各个应用服务器对业务数据缓存的主动同步,从而减少了系统内部的远程通信开销,缩短了各应用服务器对业务请求的响应延迟,也进一步减轻了数据库服务器的业务数据传输负荷;并且,各应用服务器之间的业务数据缓存同步与应用服务器从数据库服务器获取业务数据各自通过不同的、相互独立的网络进行,减少了业务数据缓存同步对业务请求响应延迟的影响。

权利要求 :

1.基于数据缓存同步的分布式业务请求处理方法,其特征在于,由多台应用服务器接收来自用户的业务请求,并分别以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求;其中,每当一台应用服务器通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,该应用服务器将新获取的业务数据缓存于本地缓存区并进行备份,且将备份的业务数据分发至其它应用服务器进行缓存;

其中,每一台应用服务器按如下步骤进行业务请求处理:

A、当接收到来自用户的业务请求时,执行步骤B;当接收到来自其它应用服务器的业务数据同步请求时,执行步骤C;

B、以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求;其中,当通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,将新获取的业务数据缓存于本地缓存区并进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器;

C、响应业务数据同步请求,并接收来自其它应用服务器的业务数据进行本地缓存处理。

2.根据权利要求1所述的基于数据缓存同步的分布式业务请求处理方法,其特征在于,所述步骤A之前还包括如下步骤:O、按预设定的访问热度算法,实时计算和统计本地缓存区中缓存的各业务数据的访问热度值。

3.根据权利要求2所述的基于数据缓存同步的分布式业务请求处理方法,其特征在于,所述业务请求包含有业务ID;

所述步骤B具体为:

b1、解析业务请求获得其中包含的业务ID,检索本地缓存区中是否存在业务请求包含的业务ID对应的业务数据;若是,执行步骤b2;否则,执行步骤b3;

b2、从本地缓存区中获取业务请求包含的业务ID对应的业务数据,用于响应用户的业务请求;然后跳转执行步骤O;

b3、通过远程通信从数据库服务器获取业务请求包含的业务ID对应的业务数据,用于响应用户的业务请求,并执行步骤b4;

b4、判断新获取的业务数据的数据量是否超过本地缓存区中当前剩余的业务数据缓存容量;若是,则执行步骤b5;否则执行步骤b6;

b5、将本地缓存区中访问热度值最低的业务数据及其对应的业务ID记录删除,然后返回步骤b4;

b6、将新获取的业务数据缓存于本地缓存区中,记录新获取的业务数据对应的业务ID,并执行步骤b7;

b7、将新获取的业务数据进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器;然后跳转执行步骤O。

4.根据权利要求2所述的基于数据缓存同步的分布式业务请求处理方法,其特征在于,所述业务数据同步请求包含有待同步的业务数据对应的业务ID和数据量;

所述步骤C具体为:

c1、响应业务数据同步请求,并解析业务数据同步请求获得其中包含的待同步的业务数据对应的业务ID和数据量,执行步骤c2;

c2、判断待同步的业务数据的数据量是否超过本地缓存区中当前剩余的业务数据缓存容量;若是,则执行步骤c3;否则执行步骤c4;

c3、将本地缓存区中访问热度值最低的业务数据及其对应的业务ID记录删除,然后返回步骤c2;

c4、接收来自其它应用服务器的业务数据缓存于本地缓存区中,并记录该业务数据对应的业务ID;然后跳转执行步骤O。

5.根据权利要求2-4任一项所述的基于数据缓存同步的分布式业务请求处理方法,其特征在于,所述访问热度算法的计算参数包括如下一项或几项:设定时间内的访问次数、最近一次访问时间距离当前时刻的时长、对设定时间内的访问次数按各次访问时间的加权求和。

6.基于数据缓存同步的分布式业务请求处理系统,其特征在于,包括:

数据库服务器,用于存储所提供业务中各种业务请求对应的业务数据;

多台应用服务器,用于接收来自用户的业务请求,并分别以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求;

其中,每当一台应用服务器通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,该应用服务器将新获取的业务数据缓存于本地缓存区并进行备份,且将备份的业务数据分发至其它应用服务器进行缓存;

各应用服务器通过业务数据网络分别与数据库服务器远程通信连接,各应用服务器之间通过独立于业务数据网络的数据同步网络进行远程通信连接;

所述应用服务器包括:

请求接收模块,用于接收来自用户的业务请求或来自其它应用服务器的业务数据同步请求;

业务请求处理模块,用于以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求;其中,当通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,将新获取的业务数据缓存于本地缓存区并进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器;

业务数据同步请求处理模块,用于响应业务数据同步请求,并接收来自其它应用服务器的业务数据进行本地缓存处理。

7.根据权利要求6所述的基于数据缓存同步的分布式业务请求处理系统,其特征在于,所述应用服务器还包括:访问热度统计模块,用于按预设定的访问热度算法实时计算和统计本地缓存区中缓存的各业务数据的访问热度值。

8.根据权利要求7所述的基于数据缓存同步的分布式业务请求处理系统,其特征在于,所述业务请求处理模块包括:缓存检索单元,用于解析业务请求获得其中包含的业务ID,检索本地缓存区中是否存在业务请求包含的业务ID对应的业务数据,若是则发送本地调用指令,否则发送远程获取指令;

本地缓存区调用单元,由本地调用指令触发,用于从本地缓存区中获取业务请求包含的业务ID对应的业务数据,用于响应用户的业务请求;

远程数据获取单元,由远程获取指令触发,用于通过远程通信从数据库服务器获取业务请求包含的业务ID对应的业务数据,用于响应用户的业务请求,并发送缓存容量监测指令;

缓存容量监测单元,由缓存容量监测指令触发,用于判断新获取的业务数据的数据量是否超过本地缓存区中当前剩余的业务数据缓存容量,若是则发送缓存清理指令,否则发送缓存处理指令;

缓存清理单元,由缓存清理指令触发,用于将本地缓存区中访问热度值最低的业务数据及其对应的业务ID记录删除,然后发送缓存容量监测指令;

缓存处理单元,由缓存处理指令触发,用于将新获取的业务数据缓存于本地缓存区中,记录新获取的业务数据对应的业务ID,并发送数据分发指令;

数据分发处理单元,由数据分发指令触发,用于将新获取的业务数据进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器。

9.根据权利要求7所述的基于数据缓存同步的分布式业务请求处理系统,其特征在于,所述业务数据同步请求处理模块包括:数据同步请求响应单元,用于响应业务数据同步请求,并解析业务数据同步请求获得其中包含的待同步的业务数据对应的业务ID和数据量,并发送同步缓存容量监测指令;

同步缓存容量监测单元,由同步缓存容量监测指令触发,用于判断待同步的业务数据的数据量是否超过本地缓存区中当前剩余的业务数据缓存容量,若是则发送同步缓存清理指令,否则发送同步缓存处理指令;

同步缓存清理单元,由同步缓存清理指令触发,用于将本地缓存区中访问热度值最低的业务数据及其对应的业务ID记录删除,然后发送同步缓存容量监测指令;

同步缓存处理单元,由同步缓存处理指令触发,用于接收来自其它应用服务器的业务数据缓存于本地缓存区中,并记录该业务数据对应的业务ID。

10.根据权利要求7-9任一项所述的基于数据缓存同步的分布式业务请求处理系统,其特征在于,所述访问热度算法的计算参数包括如下一项或几项:设定时间内的访问次数、最近一次访问时间距离当前时刻的时长、对设定时间内的访问次数按各次访问时间的加权求和。

说明书 :

基于数据缓存同步的分布式业务请求处理方法及系统

技术领域

[0001] 本发明涉及计算机通信网络技术和网络应用业务服务技术领域,具体涉及一种基于数据缓存同步的分布式业务请求处理方法及系统。

背景技术

[0002] 随着计算机信息时代的不断发展和进步,网络应用业务的用户数量越来越多,网络应用业务服务系统所要处理的数据量越来越庞大,并且用户对应用业务服务质量的要求也越来越高。为了提高网络应用业务的可靠性和可维护性,扩展网络应用业务的服务范围,分布式的业务服务系统当今已得到了广泛的应用。分布式的业务服务系统通常采用多台应用服务器接收和响应来自用户的业务请求,采用一数据库服务器存储业务数据,各应用服务器分布设置于不同地区并通过数据通信网络与数据库服务器进行数据通信连接,以更方便于为不同区域的用户提供网络应用业务服务,并且由数据库服务器对业务数据进行统一的管理也更方便于业务数据的维护和升级。
[0003] 相比于传统的集中式业务服务系统,分布式业务服务系统中的各应用服务器需要通过远程通信从数据库服务器获得业务数据用以响应用户的业务请求,这无疑增加了业务请求处理的远程通信开销和延迟,因此其业务请求响应处理所需要的时间往往更长。为了解决这一问题,本地缓存技术在分布式业务服务系统中的应用开始普及,即在各应用服务器中设置本地缓存区用于缓存业务数据,当接收到来自用户的业务请求时,若应用服务器的本地缓存区中缓存有用于响应用户的业务请求的业务数据,则优先从本地缓存区获取业务数据以响应用户的业务请求,否则,应用服务器再通过远程通信从数据库服务器获取业务数据以响应用户的业务请求。通过这种本地缓存区优先调用的方式,分布式业务服务系统中的应用服务器不需要在每次接收到业务请求时都远程访问数据库服务器获取业务数据,在很大程度上减少了系统内部的远程通信开销和业务请求响应的延迟,但其在实际应用中依然存在明显的不足。但现有的分布式业务服务系统中,由于各应用服务器对业务数据的本地缓存处理过程相互独立,且均被动的依赖于从数据库服务器获取后对业务数据进行缓存,因此不同应用服务器对同一业务请求的相应仍然需要分别从数据库服务器重复的获取相同的业务数据;特别是在系统内增加新的业务功能时,很可能出现在短时间内数个应用服务器集中向数据库服务器获取新的业务数据的情况,导致数据库服务器的负荷剧增、应用服务器与数据库服务器之间的数据网络通信堵塞等情况,进一步加剧了通信开销和响应延迟,从而降低了用户对网络应用业务的使用体验感。

发明内容

[0004] 针对现有技术中存在的上述不足,本发明的目的在于提供一种基于数据缓存同步的分布式业务请求处理方法,以提升分布式业务服务系统对业务请求的处理效率,缩短业务请求响应延迟,给用户带来更好的网络应用业务服务使用体验。
[0005] 为实现上述目的,本发明采用了如下技术手段:
[0006] 基于数据缓存同步的分布式业务请求处理方法,由多台应用服务器接收来自用户的业务请求,并分别以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求;其中,每当一台应用服务器通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,该应用服务器将新获取的业务数据缓存于本地缓存区并进行备份,且将备份的业务数据分发至其它应用服务器进行缓存。
[0007] 上述基于数据缓存同步的分布式业务请求处理方法中,具体而言,每一台应用服务器按如下步骤进行业务请求处理:
[0008] A、当接收到来自用户的业务请求时,执行步骤B;当接收到来自其它应用服务器的业务数据同步请求时,执行步骤C;
[0009] B、以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求;其中,当通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,将新获取的业务数据缓存于本地缓存区并进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器;
[0010] C、响应业务数据同步请求,并接收来自其它应用服务器的业务数据进行本地缓存处理。
[0011] 上述基于数据缓存同步的分布式业务请求处理方法中,作为进一步的改进方案,所述步骤A之前还包括如下步骤:
[0012] O、按预设定的访问热度算法,实时计算和统计本地缓存区中缓存的各业务数据的访问热度值。
[0013] 上述基于数据缓存同步的分布式业务请求处理方法中,具体而言,所述业务请求包含有业务ID;
[0014] 所述步骤B具体为:
[0015] b1、解析业务请求获得其中包含的业务ID,检索本地缓存区中是否存在业务请求包含的业务ID对应的业务数据;若是,执行步骤b2;否则,执行步骤b3;
[0016] b2、从本地缓存区中获取业务请求包含的业务ID对应的业务数据,用于响应用户的业务请求;然后跳转执行步骤O;
[0017] b3、通过远程通信从数据库服务器获取业务请求包含的业务ID对应的业务数据,用于响应用户的业务请求,并执行步骤b4;
[0018] b4、判断新获取的业务数据的数据量是否超过本地缓存区中当前剩余的业务数据缓存容量;若是,则执行步骤b5;否则执行步骤b6;
[0019] b5、将本地缓存区中访问热度值最低的业务数据及其对应的业务ID记录删除,然后返回步骤b4;
[0020] b6、将新获取的业务数据缓存于本地缓存区中,记录新获取的业务数据对应的业务ID,并执行步骤b7;
[0021] b7、将新获取的业务数据进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器;然后跳转执行步骤O。
[0022] 上述基于数据缓存同步的分布式业务请求处理方法中,具体而言,所述业务数据同步请求包含有待同步的业务数据对应的业务ID和数据量;
[0023] 所述步骤C具体为:
[0024] c1、响应业务数据同步请求,并解析业务数据同步请求获得其中包含的待同步的业务数据对应的业务ID和数据量,执行步骤c2;
[0025] c2、判断待同步的业务数据的数据量是否超过本地缓存区中当前剩余的业务数据缓存容量;若是,则执行步骤c3;否则执行步骤c4;
[0026] c3、将本地缓存区中访问热度值最低的业务数据及其对应的业务ID记录删除,然后返回步骤c2;
[0027] c4、接收来自其它应用服务器的业务数据缓存于本地缓存区中,并记录该业务数据对应的业务ID;然后跳转执行步骤O。
[0028] 所述访问热度算法的计算参数包括如下一项或几项:设定时间内的访问次数、最近一次访问时间距离当前时刻的时长、对设定时间内的访问次数按各次访问时间的加权求和。
[0029] 基于数据缓存同步的分布式业务请求处理系统,包括:
[0030] 数据库服务器,用于存储所提供业务中各种业务请求对应的业务数据;
[0031] 多台应用服务器,用于接收来自用户的业务请求,并分别以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求;其中,每当一台应用服务器通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,该应用服务器将新获取的业务数据缓存于本地缓存区并进行备份,且将备份的业务数据分发至其它应用服务器进行缓存;
[0032] 各应用服务器通过业务数据网络分别与数据库服务器远程通信连接,各应用服务器之间通过独立于业务数据网络的数据同步网络进行远程通信连接。
[0033] 上述基于数据缓存同步的分布式业务请求处理系统中,具体而言,所述应用服务器包括:
[0034] 请求接收模块,用于接收来自用户的业务请求或来自其它应用服务器的业务数据同步请求;
[0035] 业务请求处理模块,用于以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求;其中,当通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,将新获取的业务数据缓存于本地缓存区并进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器;
[0036] 业务数据同步请求处理模块,用于响应业务数据同步请求,并接收来自其它应用服务器的业务数据进行本地缓存处理。
[0037] 上述基于数据缓存同步的分布式业务请求处理系统中,作为进一步改进方案,所述应用服务器还包括:
[0038] 访问热度统计模块,用于按预设定的访问热度算法实时计算和统计本地缓存区中缓存的各业务数据的访问热度值。
[0039] 上述基于数据缓存同步的分布式业务请求处理系统中,具体而言,所述业务请求处理模块包括:
[0040] 缓存检索单元,用于解析业务请求获得其中包含的业务ID,检索本地缓存区中是否存在业务请求包含的业务ID对应的业务数据,若是则发送本地调用指令,否则发送远程获取指令;
[0041] 本地缓存区调用单元,由本地调用指令触发,用于从本地缓存区中获取业务请求包含的业务ID对应的业务数据,用于响应用户的业务请求;
[0042] 远程数据获取单元,由远程获取指令触发,用于通过远程通信从数据库服务器获取业务请求包含的业务ID对应的业务数据,用于响应用户的业务请求,并发送缓存容量监测指令;
[0043] 缓存容量监测单元,由缓存容量监测指令触发,用于判断新获取的业务数据的数据量是否超过本地缓存区中当前剩余的业务数据缓存容量,若是则发送缓存清理指令,否则发送缓存处理指令;
[0044] 缓存清理单元,由缓存清理指令触发,用于将本地缓存区中访问热度值最低的业务数据及其对应的业务ID记录删除,然后发送缓存容量监测指令;
[0045] 缓存处理单元,由缓存处理指令触发,用于将新获取的业务数据缓存于本地缓存区中,记录新获取的业务数据对应的业务ID,并发送数据分发指令;
[0046] 数据分发处理单元,由数据分发指令触发,用于将新获取的业务数据进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器。
[0047] 上述基于数据缓存同步的分布式业务请求处理系统中,具体而言,所述业务数据同步请求处理模块包括:
[0048] 数据同步请求响应单元,用于响应业务数据同步请求,并解析业务数据同步请求获得其中包含的待同步的业务数据对应的业务ID和数据量,并发送同步缓存容量监测指令;
[0049] 同步缓存容量监测单元,由同步缓存容量监测指令触发,用于判断待同步的业务数据的数据量是否超过本地缓存区中当前剩余的业务数据缓存容量,若是则发送同步缓存清理指令,否则发送同步缓存处理指令;
[0050] 同步缓存清理单元,由同步缓存清理指令触发,用于将本地缓存区中访问热度值最低的业务数据及其对应的业务ID记录删除,然后发送缓存容量监测指令;
[0051] 同步缓存处理单元,由同步缓存处理指令触发,用于接收来自其它应用服务器的业务数据缓存于本地缓存区中,并记录该业务数据对应的业务ID。
[0052] 所述访问热度算法的计算参数包括如下一项或几项:设定时间内的访问次数、最近一次访问时间距离当前时刻的时长、对设定时间内的访问次数按各次访问时间的加权求和。
[0053] 相比于现有技术,本发明具有如下有益效果:
[0054] 1、本发明基于数据缓存同步的分布式业务请求处理方法通过应用服务器之间对业务数据的分发缓存,实现了分布式业务服务系统中各个应用服务器对业务数据缓存的主动同步,对于新的业务数据,数据库服务器仅需发送至分布式业务服务系统内任意的一台应用服务器,各应用服务器均能够得以缓存,从而减少了系统内部的远程通信开销,缩短了各应用服务器对业务请求的响应延迟,另一方面也进一步减轻了数据库服务器的业务数据传输负荷,有助于提升数据库服务器对业务数据的传输处理效率。
[0055] 2、本发明基于数据缓存同步的分布式业务请求处理系统中,各应用服务器之间的业务数据缓存同步与应用服务器从数据库服务器获取业务数据各自通过不同的、相互独立的网络进行,避免了各应用服务器之间进行大量的业务数据缓存同步的过程中对业务数据网络通信开销的占用,保证了应用服务器与数据库服务器之间的远程数据通信畅通,减少了业务数据缓存同步对业务请求响应延迟的影响。
[0056] 3、由于各应用服务器之间的缓存同步,相应地增加了对每台应用服务器的本地缓存开销,因此本发明的业务请求处理方法在进行本地缓存处理以及同步缓存处理的过程中,都同时进行了缓存容量监测处理,并在必要时对缓存的业务数据进行清理,以避免各应用服务器因业务数据缓存同步而超出本地缓存区的缓存承载负荷,保证本地缓存优先调用的正常运行。

附图说明

[0057] 图1为本发明实施例一中应用服务器进行业务请求处理的流程框图;
[0058] 图2为本发明实施例一中应用服务器进行业务请求处理的步骤S2的具体流程图;
[0059] 图3为本发明实施例一中应用服务器进行业务请求处理的步骤S3的具体流程图;
[0060] 图4为本发明基于数据缓存同步的分布式业务请求处理系统的构架框图。

具体实施方式

[0061] 在现有的分布式业务服务系统中,各应用服务器分别与数据库服务器远程通信获取业务数据后各自独立地进行本地缓存处理,因此不同应用服务器对同一业务请求的响应仍然需要分别从数据库服务器重复的获取相同的业务数据,在分布式业务服务系统规模较大、应用服务器数量较多的情况下,数据库服务器承载业务数据传输的负荷依然较重,有可能影响数据库服务器的业务数据发送效率,导致应用服务器响应业务请求的延迟增加;特别是在系统内增加新的业务功能时,很可能出现在短时间内数个应用服务器集中向数据库服务器获取新的业务数据的情况,导致数据库服务器的负荷剧增、应用服务器与数据库服务器之间的数据网络通信堵塞等情况,进一步加剧了通信开销和响应延迟,从而降低了用户对网络应用业务的使用体验感。
[0062] 针对这一问题,本发明提出一种基于数据缓存同步的分布式业务请求处理方法,该方法依然由多台应用服务器接收来自用户的业务请求,并分别以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求;这里所述的本地缓存区优先调用的方式,依然是指当本度缓存区中缓存有用于响应用户的业务请求的业务数据,则优先从本地缓存区获取业务数据进行业务请求响应处理,否则,应用服务器再通过远程通信从数据库服务器获取业务数据以响应用户的业务请求;然而与现有技术不同的是,每当一台应用服务器通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,该应用服务器将新获取的业务数据缓存于本地缓存区并进行备份,且将备份的业务数据分发至其它应用服务器进行缓存。由此,通过应用服务器之间对业务数据的分发缓存,实现了分布式业务服务系统中各个应用服务器对业务数据缓存的主动同步,对于新的业务数据,数据库服务器仅需发送至分布式业务服务系统内任意的一台应用服务器,各应用服务器均能够得以缓存,从而减少了系统内部的远程通信开销,并结合本地缓存区优先调用技术,一方面缩短了各应用服务器对业务请求的响应延迟,另一方面也进一步减轻了数据库服务器的业务数据传输负荷,有助于提升数据库服务器对业务数据的传输处理效率。下面通过实施例,对本发明的技术方案和技术效果做进一步说明。
[0063] 实施例一:
[0064] 例如,在一提供新闻资讯业务服务的分布式业务服务系统中,一些热点新闻咨询数据往往成为一段时间以内不同服务区域集中访问的业务数据,因此很可能出现不同应用服务器在同一时间段反复响应同一业务数据的情况。若采用现有分布式业务服务系统所采用的数据缓存技术,则有可能造成数据网络通信堵塞、业务请求响应延迟严重的情况,影响业务服务质量。然而,利用本发明基于数据缓存同步的分布式业务请求处理方法,分布式业务服务系统中每一台应用服务器对业务请求进行处理的流程如图1所示,步骤如下:
[0065] S0)按预设定的访问热度算法,实时计算和统计本地缓存区中缓存的各业务数据的访问热度值。在本实施例中,应用服务器计算和统计本地缓存区中缓存的各业务数据的访问热度值,是为了在后期便于执行对本地缓存区的缓存清理处理。
[0066] S1)当接收到来自用户的业务请求时,执行步骤S2;当接收到来自其它应用服务器的业务数据同步请求时,执行步骤S3。本实施例中,业务请求包含有业务ID,用以指示用户所请求的业务数据对象;另一方面,业务数据同步请求包含有待同步的业务数据对应的业务ID和数据量,用以指示和记录待同步的业务数据对象以及便于在业务数据同步缓存过程中进行缓存清理处理。
[0067] S2)以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求;其中,当通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,将新获取的业务数据缓存于本地缓存区并进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器;本实施例中,该步骤的具体处理流程如图2所示,处理过程为:
[0068] s21)解析业务请求获得其中包含的业务ID,检索本地缓存区中是否存在业务请求包含的业务ID对应的业务数据;若是,执行步骤s22;否则,执行步骤s23;
[0069] s22)从本地缓存区中获取业务请求包含的业务ID对应的业务数据,用于响应用户的业务请求;然后跳转执行步骤S0;
[0070] s23)通过远程通信从数据库服务器获取业务请求包含的业务ID对应的业务数据,用于响应用户的业务请求,并执行步骤s24;
[0071] s24)判断新获取的业务数据的数据量是否超过本地缓存区中当前剩余的业务数据缓存容量;若是,则执行步骤s25;否则执行步骤s26;
[0072] s25)将本地缓存区中访问热度值最低的业务数据及其对应的业务ID记录删除,然后返回步骤s24;
[0073] s26)将新获取的业务数据缓存于本地缓存区中,记录新获取的业务数据对应的业务ID,并执行步骤s27;
[0074] s27)将新获取的业务数据进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器;然后跳转执行步骤S0。
[0075] S3)响应业务数据同步请求,并接收来自其它应用服务器的业务数据进行本地缓存处理;本实施例中,该步骤的具体处理流程如图3所示,处理过程为:
[0076] s31)响应业务数据同步请求,并解析业务数据同步请求获得其中包含的待同步的业务数据对应的业务ID和数据量,执行步骤s32;
[0077] s32)判断待同步的业务数据的数据量是否超过本地缓存区中当前剩余的业务数据缓存容量;若是,则执行步骤s33;否则执行步骤s34;
[0078] s33)将本地缓存区中访问热度值最低的业务数据及其对应的业务ID记录删除,然后返回步骤s32;
[0079] s34)接收来自其它应用服务器的业务数据缓存于本地缓存区中,并记录该业务数据对应的业务ID;然后跳转执行步骤S0。
[0080] 以一项关于奥运赛事信息的业务数据BDa为例,其在该新闻资讯业务服务中对应的业务ID为“00a”;通过上述的业务请求处理流程可见,若当应用服务器接收到包含业务ID为“00a”的业务请求时,则检索本地缓存区中是否存在业务请求包含的业务ID对应的业务数据,若不存在,则通过远程通信从数据库服务器获取业务ID“00a”对应的业务数据BDa并进行本地缓存处理,同时还将业务数据BDa进行备份,分别向其它应用服务器发送包含有业务ID“00a”以及业务数据BDa对应的数据量的业务数据同步请求,等待业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器;其它的应用服务器在接收到该业务数据同步请求时,对业务数据同步请求进行响应,并接收业务数据BDa进行本地缓存处理;至此,各应用服务器均在本地缓存区中缓存有业务数据BDa;此后,任意一台应用服务器若再次接收到包含业务ID为“00a”的业务请求时,则无需再重复地通过远程通信从数据库服务器获取业务ID“00a”对应的业务数据BDa,而可以直接从本地缓存区中获取业务数据BDa响应用户的业务请求,进一步减少了通信开销和业务请求响应延迟,为用户提供更快速的业务服务;另一方面,由于各应用服务器之间的缓存同步,相应地增加了对每台应用服务器的本地缓存开销,因此本发明的业务请求处理方法在进行本地缓存处理以及同步缓存处理的过程中,都同时进行了缓存容量监测处理,并在必要时对缓存的业务数据进行清理,以避免各应用服务器因业务数据缓存同步而超出本地缓存区的缓存承载负荷(因为本地缓存区的缓存空间还可能用于应用服务器执行其它任务处理过程中的数据缓存),保证本地缓存优先调用的正常运行。
[0081] 至于本实施所涉及的访问热度算法,不同的应用业务服务所采用的算法方案各有不同,访问热度算法的计算参数可以包括:设定时间内的访问次数、最近一次访问时间距离当前时刻的时长、对设定时间内的访问次数按各次访问时间的加权求和等中的一项或几项。例如根据一段时间内访问次数的多少计算业务数据的访问热度值(访问次数越多,相应的访问热度值越高),或者根据最近一次访问时间距离当前时刻的时长计算业务数据的访问热度值(访问时间距离当前时刻越近,相应的访问热度值越高),又或者对一段时间内的访问次数按各次访问时间进行加权求和计算访问热度值(访问时间距离当前时刻越近,相应的权值越大),等等;本领域技术人员可以根据具体应用业务的需求和实际情况,选择常用或适宜的访问热度算法方案。
[0082] 需要说明的是,本实施例为了避免因缓存同步对应用服务器本地缓存区的缓存负荷带来负面影响,在步骤S2和S3的执行过程中进行了缓存清理判断和处理,并且由于采用了访问热度值作为对本地缓存区中缓存清理对象的判别标准,因此在步骤S1前也相应添加了执行步骤S0的处理,以便于后期执行步骤S2和S3的过程中可以直接通过对比访问热度值而判定作为缓存清理对象的业务数据,避免在缓存清理过程中才进行访问热度运算而影响缓存清理处理效率。当然,在本发明方案的实际应用中,如果本领域技术人员在步骤S2和S3中的缓存清理处理过程中采用其它的缓存清理对象判别方式,或者无需在步骤S2和S3的缓存过程中执行缓存清理判断和处理,则无需在步骤S1前执行步骤S0的处理过程。在本发明基于数据缓存同步的分布式业务请求处理方法中,对于每一台应用服务器而言,针对提升分布式业务服务系统对业务请求的处理效率、缩短业务请求响应延迟的问题,执行如下的步骤SA~SC完成各应用服务器之间的缓存同步处理,即可达到提升业务请求处理效率、缩短响应延迟的效果:
[0083] SA)当接收到来自用户的业务请求时,执行步骤SB;当接收到来自其它应用服务器的业务数据同步请求时,执行步骤SC;
[0084] SB)以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求;其中,当通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,将新获取的业务数据缓存于本地缓存区并进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器;
[0085] SC)响应业务数据同步请求,并接收来自其它应用服务器的业务数据进行本地缓存处理。
[0086] 实施例二:
[0087] 为了实现实施例一所述的基于数据缓存同步的分布式业务请求处理方法,本发明还响应提供了基于数据缓存同步的分布式业务请求处理系统。如图4所示,该分布式业务请求处理系统包括数据库服务器和多台应用服务器;数据库服务器用于存储所提供业务中各种业务请求对应的业务数据;各应用服务器用于接收来自用户的业务请求,并分别以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求;其中,每当一台应用服务器通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,该应用服务器将新获取的业务数据缓存于本地缓存区并进行备份,且将备份的业务数据分发至其它应用服务器进行缓存;应用服务器通过业务数据网络分别与数据库服务器远程通信连接,各应用服务器之间通过独立于业务数据网络的数据同步网络进行远程通信连接。由此,各应用服务器之间的业务数据缓存同步与应用服务器从数据库服务器获取业务数据各自通过不同的、相互独立的网络进行,避免了各应用服务器之间进行大量的业务数据缓存同步的过程中对业务数据网络通信开销的占用,保证了应用服务器与数据库服务器之间的远程数据通信畅通,减少了业务数据缓存同步对业务请求响应延迟的影响。
[0088] 作为一种较优的实施方式,本实施例分布式业务请求处理系统中的应用服务器,主要包括有访问热度统计模块、请求接收模块、业务请求处理模块和业务数据同步请求处理模块。访问热度统计模块,用于按预设定的访问热度算法实时计算和统计本地缓存区中缓存的各业务数据的访问热度值;请求接收模块用于接收来自用户的业务请求或来自其它应用服务器的业务数据同步请求;业务请求处理模块用于以本地缓存区优先调用的方式从本地缓存区或通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求,其中,当通过远程通信从数据库服务器获取业务数据用于响应用户的业务请求时,将新获取的业务数据缓存于本地缓存区并进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器;业务数据同步请求处理模块用于响应业务数据同步请求,并接收来自其它应用服务器的业务数据进行本地缓存处理。本实施例中,具体而言,业务请求处理模块包括有:缓存检索单元,用于解析业务请求获得其中包含的业务ID,检索本地缓存区中是否存在业务请求包含的业务ID对应的业务数据,若是则发送本地调用指令,否则发送远程获取指令;本地缓存区调用单元,由本地调用指令触发,用于从本地缓存区中获取业务请求包含的业务ID对应的业务数据,用于响应用户的业务请求;远程数据获取单元,由远程获取指令触发,用于通过远程通信从数据库服务器获取业务请求包含的业务ID对应的业务数据,用于响应用户的业务请求,并发送缓存容量监测指令;缓存容量监测单元,由缓存容量监测指令触发,用于判断新获取的业务数据的数据量是否超过本地缓存区中当前剩余的业务数据缓存容量,若是则发送缓存清理指令,否则发送缓存处理指令;缓存清理单元,由缓存清理指令触发,用于将本地缓存区中访问热度值最低的业务数据及其对应的业务ID记录删除,然后发送缓存容量监测指令;缓存处理单元,由缓存处理指令触发,用于将新获取的业务数据缓存于本地缓存区中,记录新获取的业务数据对应的业务ID,并发送数据分发指令;数据分发处理单元,由数据分发指令触发,用于将新获取的业务数据进行备份,且分别向其它应用服务器发送业务数据同步请求,并在业务数据同步请求得到响应时将备份的业务数据分发至其它应用服务器。业务数据同步请求处理模块包括有:数据同步请求响应单元,用于响应业务数据同步请求,并解析业务数据同步请求获得其中包含的待同步的业务数据对应的业务ID和数据量,并发送同步缓存容量监测指令;同步缓存容量监测单元,由同步缓存容量监测指令触发,用于判断待同步的业务数据的数据量是否超过本地缓存区中当前剩余的业务数据缓存容量,若是则发送同步缓存清理指令,否则发送同步缓存处理指令;同步缓存清理单元,由同步缓存清理指令触发,用于将本地缓存区中访问热度值最低的业务数据及其对应的业务ID记录删除,然后发送缓存容量监测指令;同步缓存处理单元,由同步缓存处理指令触发,用于接收来自其它应用服务器的业务数据缓存于本地缓存区中,并记录该业务数据对应的业务ID。通过应用服务器上述各模块之间的配合工作,完成实施例一种所述的分布式业务请求处理过程,以提升分布式业务服务系统对业务请求的处理效率,缩短业务请求响应延迟,给用户带来更好的网络应用业务服务使用体验。
[0089] 当然,本实施例同样是为了避免因缓存同步对应用服务器本地缓存区的缓存负荷带来负面影响而需要进行缓存清理判断和处理,并且由于采用了访问热度值作为对本地缓存区中缓存清理对象的判别标准,因此才需要在应用服务器中设置访问热度统计模块;如果本领域技术人员设计的缓存清理处理过程采用其它的缓存清理对象判别方式,或者并未融合设计缓存清理判断和处理,在本发明基于数据缓存同步的分布式业务请求处理系统中,对于每一台应用服务器而言,针对提升分布式业务服务系统对业务请求的处理效率、缩短业务请求响应延迟的问题,设置请求接收模块、业务请求处理模块和业务数据同步请求处理模块,即可完成各应用服务器之间的缓存同步处理,达到提升业务请求处理效率、缩短响应延迟的效果。
[0090] 最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。