[发明专利]一种分布式缓存更新方法及缓存更新系统在审
申请号: | 201611245664.X | 申请日: | 2016-12-29 |
公开(公告)号: | CN106713470A | 公开(公告)日: | 2017-05-24 |
发明(设计)人: | 张海 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙)11413 | 代理人: | 项京,马敬 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 缓存 更新 方法 系统 | ||
技术领域
本发明涉及分布式缓存领域技术领域,特别是涉及一种分布式缓存更新方法及缓存更新系统。
背景技术
在高并发环境下,为了应对海量数据与用户请求带来的挑战,解决大规模数据访问带来的网络瓶颈问题,分布式缓存技术应运而生。分布式缓存是指缓存数据部署在由多个服务器组成的集群中,以集群方式提供缓存服务。应用分布式缓存技术需要设计缓存更新策略,以提高缓存命中率,减轻后端服务压力。但是,随着业务的发展,跨机房网络通讯越来越频繁,在促进网络间数据交换的同时,也带来了系统可靠性的问题,因此,加强分布式缓存更新系统的可靠性变得尤为重要。
目前,常用的分布式缓存更新系统是基于主动更新策略的。具体做法是:首先,缓存更新系统接收消息中间件或者客户端发送的缓存更新通知,即消息通知;其次,根据消息通知组装缓存数据;最后,跨机房更新所有缓存服务器。现有的分布式缓存更新方法的整个执行过程是在同一个服务器中完成的,各个步骤按照顺序依次执行,任何一个步骤的失败,将导致整个更新过程失败,整个更新过程需要再次启动。比如:组装缓存数据失败,那么无论更新缓存服务器的步骤是否成功执行,由于用来更新缓存服务器的缓存数据未被成功组装,从而,导致更新缓存服务器是无效更新,整个更新过程需要再次启动。并且,每个步骤的执行都有可能由于网络环境的变化而导致失败,例如:接收消息通知时,由于系统重启升级,导致消息通知未被成功接收,或者,成功接收消息通知,但没成功完成消息通知的处理。组装缓存数据时,由于依赖服务出现异常,导致组装缓存数据失败;更新缓存服务器时,由于网络抖动或缓存服务出现异常,导致更新缓存服务器失败。
可见,在分布式缓存更新系统的更新过程中,每个步骤的执行都有可能由于网络环境的变化而失败,并且由于分布式缓存更新方法的整个执行过程是在同一个服务器中完成的,各个步骤相互关联,一个步骤的失败将导致整个更新过程的失败,从而导致分布式缓存更新系统的可靠性较低。
发明内容
本发明实施例的目的在于提供一种分布式缓存更新方法及缓存更新系统,以提高分布式缓存更新系统的可靠性。
为达到上述目的,本发明实施例提供了一种分布式缓存更新方法,应用于缓存更新系统,所述缓存更新系统包括:数据组装服务器、数据缓存区、缓存更新服务器和缓存存储服务器;所述方法包括:
所述数据组装服务器获得待缓存数据;按照预设规则将所述待缓存数据组装为缓存包;将所述缓存包发送给所述数据缓存区进行存储;
所述缓存更新服务器从所述数据缓存区中获得所述缓存包;根据所述缓存包对与该缓存更新服务器位于同一机房的缓存存储服务器进行缓存更新。
可选的,所述按照预设规则将所述待缓存数据组装为缓存包,包括:
对获得的待缓存数据进行过滤;
按照预设规则将过滤后的待缓存数据组装为缓存包。
可选的,所述按照预设规则将所述待缓存数据组装为缓存包,包括:
判断获得的待缓存数据的大小是否大于预设阈值;
如果是,将所述待缓存数据拆分为均不大于预设阈值的数据;
按照预设规则将拆分后的数据分别组装为缓存包。
可选的,所述缓存更新服务器从所述数据缓存区中获得所述缓存包,包括:
所述缓存更新服务器从所述数据缓存区中以pull方式获得所述缓存包。
可选的,缓存包中包含有机房标识信息;所述根据所述缓存包对与该缓存更新服务器位于同一机房的缓存存储服务器进行缓存更新,包括:
根据所述标识信息判断所述缓存包是否属于所述缓存更新服务器所处机房;
如果是,根据所述缓存包对与该缓存更新服务器位于同一机房的缓存存储服务器进行缓存更新。
可选的,所述缓存更新系统还包括:更新检测服务器;所述方法还包括:
所述更新检测服务器根据缓存更新日志中各个步骤的处理状态码,判断缓存是否更新成功;
如果否,向所述数据组装服务器发送缓存更新不成功消息,以重新更新缓存。
本发明实施例还公开了一种缓存更新系统,所述系统包括:数据组装服务器、数据缓存区、缓存更新服务器和缓存存储服务器;所述数据组装服务器包括:第一获得模块、组装模块和第一发送模块;所述缓存更新服务器包括:第二获得模块和更新模块,其中,
所述第一获得模块,用于获得待缓存数据;
所述组装模块,用于按照预设规则将所述待缓存数据组装为缓存包;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611245664.X/2.html,转载请声明来源钻瓜专利网。