[发明专利]一种集群环境下数据缓存同步的方法及系统有效
申请号: | 200710194873.0 | 申请日: | 2007-12-13 |
公开(公告)号: | CN101188566A | 公开(公告)日: | 2008-05-28 |
发明(设计)人: | 张德阳 | 申请(专利权)人: | 沈阳东软软件股份有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;G06F12/08;G06F15/163 |
代理公司: | 北京集佳知识产权代理有限公司 | 代理人: | 郑自群;逯长明 |
地址: | 110179辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 集群 环境 数据 缓存 同步 方法 系统 | ||
技术领域
本发明涉及数据库应用技术,特别是涉及一种集群环境下数据缓存同步的方法及系统。
背景技术
在数据库应用系统中,为了满足大型应用的性能需求,在应用系统的服务端通常有两种技术解决方案:集群技术和缓存技术。其中,所述集群技术是使单独服务器实现物理和程序上的连接,并在服务器之间进行协同通讯,以使它们能够执行共同的任务;即使某一台服务器停止运行,故障应急进程会自动将该服务器的工作负载转移至另一台服务器,以保证提供持续不断的服务。因此,集群技术可以通过多台服务器并行计算提升系统的计算能力。为了提高系统的响应速度,通常在应用中引入缓存技术。所述缓存技术是指通过利用已有的计算结果,避免重复计算,全面降低系统的压力。当一个应用部署在集群环境下的不同服务器节点时,每个服务器节点只负责维护本地Java虚拟机中的缓存对象。这样很容易导致不同服务器节点下的缓存对象版本不一致,从而导致用户请求的数据是已经过期的无用的数据。
为了解决集群环境下缓存对象版本不一致的问题,通常是通过广播消息的机制通知其它节点更新本地缓存从而达到同步的目的。
在现有技术中,集群环境下缓存同步的方法主要有以下两种:
一、广播消息使其它节点的缓存数据无效。
参照图1,当位于集群中某个服务器节点下缓存中的对象发生改变时,这个服务器节点将发送消息通知所有订阅此消息的其它服务器节点,其它服务器节点接收到此消息后,将清空本地缓存区域中的对象,当有请求再次访问相应的缓存区域中的对象时,如果缓存中不存在此对象,将会自动从后台重新加载数据到缓存中来保证缓存同步。单独采用此种方法主要存在以下问题:
1、很多情形下只是更新缓存区域的一个或多个缓存对象,被更新的缓存对象粒度也非常小。而其它服务器节点接收到消息后会从数据库重新查询最新数据更新整个缓存区域,当缓存区域的对象非常多时,会非常消耗性能,浪费计算机系统资源。
2、当缓存更新的频率较高时,其它服务器节点会接收到很多消息,假设执行N次查询从数据库获取最新数据更新整个缓存区域,则此时前N-1次的查询都是多余的,因此对于计算机系统资源也是一个极大的浪费。
二、在消息体中附载要更新的缓存对象。
参照图2、当位于集群中某个服务器节点缓存中的对象发生改变时,这台服务器将被更新的缓存对象附载在消息体上通知所有订阅此消息体的其它服务器节点,其它服务器节点接收到此消息体后,从消息体中取得附载的被更新的缓存对象更新本地的缓存区域。单独采用此方法主要存在以下问题:
1、当被更新的缓存对象粒度较大时,缓存对象被附载在消息体中传输,会严重影响网络带宽,浪费网络资源,导致性能低下。
2、当消息发送的频率较高时,会大量的广播消息,严重的情况下会导致网络堵塞,极大的浪费了网络资源。
综上所述,单独采用每种现有技术方案解决缓存同步问题,都未能同时很好的解决其存在的各种缺点。
发明内容
本发明所要解决的技术问题是提供一种集群环境下数据缓存同步的方法及系统,提高缓存效率,节约计算机系统资源和网络资源。
在集群环境下,每个服务器节点部署的Web应用程序代码基本相同,从而保证了在各个服务器节点中更新缓存的接口及其接口实现的代码完全一致,例如,在某一个服务器节点存在的缓存更新方法在其它服务器节点也必然存在。
基于上述事实,为了解决上述问题,本发明公开了一种集群环境下数据缓存同步的方法,包括:
当某个服务器节点的缓存对象更新成功后,将更新该缓存对象的方法名及有序参数列表打包成消息体;
将打包消息体发送至所有订阅所述打包消息体的其它服务器节点;
其它服务器节点接收所述打包消息体后,从所述打包消息体中获取所述方法名及有序参数列表;
根据所述方法名和有序参数列表在本地服务器节点匹配相应的缓存对象更新方法;
执行所述匹配后的缓存对象更新方法更新本地服务器节点的缓存对象。
本发明还公开了另一种集群环境下数据缓存同步的方法,包括:
在服务器节点中创建存储队列;
当某个服务器节点的缓存对象更新成功后,将更新该缓存对象的方法名及有序参数列表置于所述队列中等待发送;
按预置时间阈值检查待发送队列,将队列中更新缓存对象的方法名及有序参数列表打包成消息体;
将打包消息体发送至所有订阅所述打包消息体的其它服务器节点;
其它服务器节点接收所述打包消息体后,从所述打包消息体中获取所述方法名及有序参数列表;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于沈阳东软软件股份有限公司,未经沈阳东软软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710194873.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置