[发明专利]用于处理高并发请求的方法和系统在审
申请号: | 201910694039.0 | 申请日: | 2019-07-30 |
公开(公告)号: | CN110489694A | 公开(公告)日: | 2019-11-22 |
发明(设计)人: | 林世荣 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F16/958 | 分类号: | G06F16/958 |
代理公司: | 11315 北京国昊天诚知识产权代理有限公司 | 代理人: | 许振新;朱文杰<国际申请>=<国际公布> |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 散列 缓存 动态资源 读取 请求转发 写入成功 写入失败 请求方 服务器 并发 写入 响应 | ||
1.一种用于处理高并发请求的方法,包括:
接收来自请求方的请求,所述请求包括对动态资源的请求;
计算所述请求的散列值,所述散列值能唯一地标识所述请求;
按乐观锁的方式将所述散列值写入缓存;
如果所述写入成功,则将所述请求转发给动态资源服务器以供处理;以及
如果所述写入失败,则尝试从缓存读取对所述请求的响应。
2.如权利要求1所述的方法,其特征在于,所述请求是HTTP请求,且所述方法由web服务器执行。
3.如权利要求2所述的方法,其特征在于,所述散列值是至少对所述HTTP请求中包括的如下部分应用散列函数来获得的:请求方法、请求URL、以及请求体。
4.如权利要求1所述的方法,其特征在于,所述写入包括:将所述散列值的版本号设为1来写入所述缓存,并且如果所述缓存中存在版本号大于等于1的相同散列值,则所述写入失败;否则,所述写入成功。
5.如权利要求4所述的方法,其特征在于,所述请求还包括对静态资源的请求。
6.如权利要求5所述的方法,其特征在于,还包括在所述写入成功的情况下,从所述动态资源服务器接收所请求的动态资源,将所述动态资源以及所请求的静态资源一起作为对所述请求的响应存储在所述缓存中,并将所述响应发送给所述请求方。
7.如权利要求6所述的方法,其特征在于,还包括将所述散列值与所述响应相关联地存储在所述缓存中。
8.如权利要求7所述的方法,其特征在于,所述缓存中存储的散列值具有相应的生存时间,并且所述生存时间是预定的或根据被请求的动态资源的属性来确定的。
9.如权利要求8所述的方法,其特征在于,在相应散列值的生存时间期满之后,从所述缓存中清除该相应散列值以及相关联的响应。
10.如权利要求1所述的方法,其特征在于,还包括在所述写入失败的情况下,执行所述尝试达预定次数,直至从所述缓存成功读取对所述请求的响应,其中所述预定次数等于所述请求的超时时间除以单次请求处理时间。
11.如权利要求10所述的方法,其特征在于,还包括如果在所述预定次数内没有成功读取到对所述请求的响应,则向所述请求方发送请求超时通知;否则,将读取到的响应发送给所述请求方。
12.一种用于处理高并发请求的系统,包括:
接收组件,其被配置成接收来自请求方的请求,其中所述请求包括对动态资源的请求;
计算组件,其被配置成计算所述请求的散列值,其中所述散列值能唯一地标识所述请求;
写入组件,其被配置成按乐观锁的方式将所述散列值写入缓存;
传送组件,其被配置成如果所述写入组件将所述散列值成功写入所述缓存,则将所述请求转发给动态资源服务器以供处理;以及
读取组件,其被配置成如果所述写入组件写入失败,则尝试从缓存读取对所述请求的响应。
13.如权利要求12所述的系统,其特征在于,所述请求是HTTP请求。
14.如权利要求13所述的系统,其特征在于,所述散列值是至少对所述HTTP请求中包括的如下部分应用散列函数来获得的:请求方法、请求URL、以及请求体。
15.如权利要求12所述的系统,其特征在于,所述写入组件还被配置成将所述散列值的版本号设为1来写入所述缓存,并且如果所述缓存中存在版本号大于等于1的相同散列值,则所述写入失败;否则,所述写入成功。
16.如权利要求15所述的系统,其特征在于,所述请求还包括对静态资源的请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910694039.0/1.html,转载请声明来源钻瓜专利网。