The invention discloses a method and system for updating the distributed cache, the method includes: the server will carry the timestamp of any time zone cache update message to each client; each client in the receiving cache update message after the success of the client to calculate the time zone corresponding to the time according to the time stamp, then execute a thread the delay to the same point in time when the thread includes update cache and cache data saved before the update; the server determines whether all clients receive cache update message successfully, if not, to each client sends a rollback message and the cache update message to each client, if re, determine whether all clients update the cache the success of the delay after a certain period of time; if at least one client failed to update the cache, each client sends a rollback Message and redistribute the cache update message to each client. This application improves the system reliability and ensures that all clients can update the cache synchronously.
【技术实现步骤摘要】
一种分布式缓存更新方法和系统
本专利技术涉及分布式缓存
,更具体地说,涉及一种分布式缓存更新方法和系统。
技术介绍
现有的分布式缓存更新系统如图1所示,包括:服务器端、消息中间件和多个客户端,服务器端通过消息中间件将同一缓存更新消息传递到多个客户端,使每个客户端执行同样的缓存更新操作。但图1所示分布式缓存更新系统存在以下缺陷:1)所有缓存更新消息都依赖消息中间件进行传递,一旦消息中间件故障则整个系统将瘫痪,系统可靠性差;2)由于存在数据传输延时的问题,不同客户端接收到同一缓存更新消息的时间可能不一致,无法保证所有客户端同步更新缓存。3)由于每个客户端都是按照自己所在的时区的时间执行缓存更新操作,当不同客户端所在的时区不一致时,同样无法保证所有客户端同步更新缓存。如何克服上述缺陷,是本领域技术人员亟待解决的问题。
技术实现思路
有鉴于此,本专利技术提供一种分布式缓存更新方法和系统,以提高系统可靠性,并保证所有客户端能够同步更新缓存。一种分布式缓存更新方法,包括:服务器端将缓存更新消息发送给各个客户端,所述缓存更新消息携带有任一时区的时间戳;其中,每一个客户端在接收所述缓存更新消息成功后,首先根据所述时间戳计算出本客户端所在的时区对应的时间,然后延迟到同一时间点时执行一线程,所述线程包括更新缓存并保存更新前的缓存数据;所述服务器端判断是否所有客户端都接收所述缓存更新消息成功;若至少一个客户端接收所述缓存更新消息失败,则所述服务器端向各个客户端发送回滚消息,并重新将所述缓存更新消息发送给各个客户端;若所有客户端都接收所述缓存更新消息成功,则所述服务器端延迟一定 ...
【技术保护点】
一种分布式缓存更新方法,其特征在于,包括:服务器端将缓存更新消息发送给各个客户端,所述缓存更新消息携带有任一时区的时间戳;其中,每一个客户端在接收所述缓存更新消息成功后,首先根据所述时间戳计算出本客户端所在的时区对应的时间,然后延迟到同一时间点时执行一线程,所述线程包括更新缓存并保存更新前的缓存数据;所述服务器端判断是否所有客户端都接收所述缓存更新消息成功;若至少一个客户端接收所述缓存更新消息失败,则所述服务器端向各个客户端发送回滚消息,并重新将所述缓存更新消息发送给各个客户端;若所有客户端都接收所述缓存更新消息成功,则所述服务器端延迟一定时间后判断是否所有客户端都更新缓存成功;若至少一个客户端更新缓存失败,则所述服务器端向各个客户端发送所述回滚消息,并重新将所述缓存更新消息发送给各个客户端。
【技术特征摘要】
1.一种分布式缓存更新方法,其特征在于,包括:服务器端将缓存更新消息发送给各个客户端,所述缓存更新消息携带有任一时区的时间戳;其中,每一个客户端在接收所述缓存更新消息成功后,首先根据所述时间戳计算出本客户端所在的时区对应的时间,然后延迟到同一时间点时执行一线程,所述线程包括更新缓存并保存更新前的缓存数据;所述服务器端判断是否所有客户端都接收所述缓存更新消息成功;若至少一个客户端接收所述缓存更新消息失败,则所述服务器端向各个客户端发送回滚消息,并重新将所述缓存更新消息发送给各个客户端;若所有客户端都接收所述缓存更新消息成功,则所述服务器端延迟一定时间后判断是否所有客户端都更新缓存成功;若至少一个客户端更新缓存失败,则所述服务器端向各个客户端发送所述回滚消息,并重新将所述缓存更新消息发送给各个客户端。2.根据权利要求1所述的分布式缓存更新方法,其特征在于,客户端接收所述缓存更新消息成功,包括:客户端在接收到所述缓存更新消息时,验证所述缓存更新消息的合法性,如果所述缓存更新消息合法,则接收所述缓存更新消息成功,如果所述缓存更新消息不合法,则接收所述缓存更新消息失败。3.根据权利要求1所述的分布式缓存更新方法,其特征在于,每一个客户端都将本客户端更新消息是否成功以及更新缓存是否成功的记录保存到区块链中;对应的,所述判断是否所有客户端都接收所述缓存更新消息成功,包括:通过读取所述区块链中保存的各客户端更新消息是否成功的记录,判断是否所有客户端都接收所述缓存更新消息成功;所述判断是否所有客户端都更新缓存成功,包括:通过读取所述区块链中保存的各客户端更新缓存是否成功的记录,判断是否所有客户端都更新缓存成功。4.根据权利要求1所述的分布式缓存更新方法,其特征在于,所述任一时区的时间戳为格林威治时间戳。5.根据权利要求1所述的分布式缓存更新方法,其特征在于,所述服务器端在重新将所述缓存更新消...
【专利技术属性】
技术研发人员:牛峰,赵明建,许盛,
申请(专利权)人:阳光电源股份有限公司,
类型:发明
国别省市:安徽,34
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。