一种解决Hibernate分布式数据缓存的方法与系统的制作方法

文档序号:10655405阅读:312来源:国知局
一种解决Hibernate分布式数据缓存的方法与系统的制作方法
【专利摘要】本发明公开了一种解决Hibernate分布式数据缓存的系统及方法,其中系统包括:数据缓存服务器路由模块,用于给应用选择可用且适合的数据缓存服务器以提供数据缓存服务;数据序列化模块,用于对需要缓存的数据进行序列化以便于数据缓存服务器进行储存;数据缓存管理模块,用于获取数据缓存服务器上的缓存数据、以及将需要存储且序列化后的缓存数据转发到数据缓存服务器中进行储存。本发明对比现有的提供对Hibernate支持的数据缓存的技术方案,本方案能在不增加开发者的开发成本的前提下,把缓存数据保存于分布式数据缓存服务器,且当分布式数据缓存集群服务器中部分服务器无法提供服务时,亦能保证数据缓存的完整性和缓存服务。
【专利说明】
_种解决H i bernate分布式数据缓存的方法与系统
技术领域
[0001]本发明属于数据缓存管理领域,具体涉及一种解决Hibernate分布式数据缓存的方法与系统。
【背景技术】
[0002]Hibernate是一个开放源代码的对象关系映射框架,它对java数据库连接进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate能够提高开发者开发服务应用的开发速度,并能高效地进行数据库操作。且当增加Hibernate数据缓存功能,能进一步加快Hibernate的处理速度。所以大量的服务应用使用了该技术框架。
[0003]随着时代的发展,服务应用的访问量不断增加,需要增加多个应用同时提供服务才能保证服务能正常运行。但是由于Hibernate自身提供的数据缓存只能为单个服务应用提供数据缓存功能,多个服务应用独立使用缓存会出现多份缓存数据存在,无法对缓存数据统一管理,容易导致数据出现错误。同时Hibernate缓存无法给多个其他服务应用共用数据缓存,也难以增加缓存空间以提高缓存的命中率。
[0004]为解决以上问题,现有的方案采用以下三种:
1.Ehcache数据缓存,能把数据缓存在本地服务应用内存中。多个服务应用之间使用中间件Terracotta进行数据同步。其中,Ehcache是一个纯Java的进程内缓存框架,具有快速、精干等特点,Terracotta是负责实现高性能、高可用性、高稳定性的企业级Java集群的中间件。
[0005]2.Memcached数据缓存,能把数据存放到统一的分布式数据缓存服务器,并能被多个服务应用共享使用。其中,Memcached是一个高性能的分布式数据缓存系统,分布式数据缓存服务器是数据缓存系统服务器集群。
[0006]3.开发者在数据操作过程中显式增加数据缓存处理流程。
[0007]然而,上述方案一定程度上实现了多个其他服务应用共用数据缓存,但是开发者在程序中显式增加数据缓存的处理流程,会增大开发的时间和难度,且会导致代码可读性下降。
[0008]使用Ehcache数据缓存时,当出现多个服务应用需要缓存数据同步时,会导致多个应用存在多份相同的缓存数据。安装与配置中间件Terracotta进行多个服务应用缓存数据同步步骤非常繁琐复杂,且数据同步极易出现缺漏。
[0009]使用Memcached数据缓存时,当分布式数据缓存服务器中一台服务器出现无法提供服务时,将会导致部分数据缓存失败。

【发明内容】

[0010]为解决上述技术问题,本发明的目的是提供一种解决Hibernate分布式数据缓存的方法与系统。
[0011]本发明采用的技术方案是:
一种解决Hibernate分布式数据缓存的系统,包括:
一数据缓存服务器路由模块,用于给应用选择可用且适合的数据缓存服务器以提供数据缓存服务;
一数据序列化模块,用于对需要缓存的数据进行序列化以便于数据缓存服务器进行储存;
一数据缓存管理模块,用于获取数据缓存服务器上的缓存数据、以及将需要存储且序列化后的缓存数据转发到数据缓存服务器中进行储存。
[0012]进一步,所述数据缓存服务器路由模块从分布式数据缓存服务器中选择可用且适合的数据缓存服务器。
[0013]本发明还包括与上述系统同一发明构思的数据缓存方法:包括以下步骤:
(A)、应用操作数据时自动调用Hibernate数据缓存机制;
(B)、由数据缓存服务器路由模块给应用选择可用且适合的数据缓存服务器;
(C)数据缓存管理模块查询步骤B中所选择的数据缓存服务器是否存在应用操作时的数据缓存;
(D)若存在,数据缓存管理模块查询所述数据缓存并获取数据缓存服务器中存在的数据,然后结束;若不存在,则继续进入下一步;
(E)对于不存在于所述数据缓存服务器的缓存数据,数据序列化模块把需要缓存的数据序列化成便于数据缓存服务器保存的数据;
(F)数据缓存管理模块转发序列化后的数据到所述数据缓存服务器进行存储。
[0014]进一步,所述步骤B中数据缓存服务器路由模块从分布式数据缓存服务器中选择可用且适合的数据缓存服务器。
[0015]进一步,所述步骤B包括:
(BI)应用对数据缓存服务器非直接连接操作;
(B2)应用通过查询缓存服务器路由模块的服务选择合适可用的数据缓存服务器;
(B3)应用根据缓存服务器路由模块的服务返回数据缓存服务器进行连接操作。
[0016]本发明的有益效果:
本发明对比现有的提供对Hibernate支持的数据缓存的技术方案,本方案能在不增加开发者的开发成本的前提下,把缓存数据保存于分布式数据缓存服务器,且当分布式数据缓存集群服务器中部分服务器无法提供服务时,亦能保证数据缓存的完整性和缓存服务。
【附图说明】
[0017]下面结合附图对本发明的【具体实施方式】做进一步的说明。
[0018]图1是本发明数据缓存系统的原理图;
图2是本发明数据缓存方法的步骤B子流程图。
【具体实施方式】
[0019]参考图1所示,为本发明的一种解决Hibernate分布式数据缓存的系统,包括: 一数据缓存服务器路由模块,用于给应用从分布式数据缓存服务器中选择可用且适合的数据缓存服务器以提供数据缓存服务;
一数据序列化模块,用于对需要缓存的数据进行序列化以便于数据缓存服务器进行储存;
一数据缓存管理模块,用于获取数据缓存服务器上的缓存数据、以及将需要存储且序列化后的缓存数据转发到数据缓存服务器中进行储存。
[0020]本发明还包括与上述系统同一发明构思的数据缓存方法:包括以下步骤:
(A)、应用操作数据时自动调用Hibernate数据缓存机制;
(B)、由数据缓存服务器路由模块给应用从分布式数据缓存服务器中选择可用且适合的数据缓存服务器;
(C)数据缓存管理模块查询步骤B中所选择的数据缓存服务器是否存在应用操作时的数据缓存;
(D)若存在,数据缓存管理模块查询所述数据缓存并获取数据缓存服务器中存在的数据,然后结束;若不存在,则继续进入下一步;
(E)对于不存在于所述数据缓存服务器的缓存数据,数据序列化模块把需要缓存的数据序列化成便于数据缓存服务器保存的数据;
(F)数据缓存管理模块转发序列化后的数据到所述数据缓存服务器进行存储。
[0021]如图2所示,所述步骤B包括:
(BI)应用对数据缓存服务器非直接连接操作;
(B2)应用通过查询缓存服务器路由模块的服务选择合适可用的数据缓存服务器;
(B3)应用根据缓存服务器路由模块的服务返回数据缓存服务器进行连接操作。
[0022]如上所述,可以看出本发明方法基于Hibernate缓存机制,只需要简单的进行配置即可使Hibernate拥有数据缓存功能,同时多个应用能共用缓存服务中的数据并能保证在分布式数据缓存服务器中出现不可用的服务器亦能保证正常的缓存服务。
[0023]以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。
【主权项】
1.一种解决Hibernate分布式数据缓存的系统,其特征在于包括: 一数据缓存服务器路由模块,用于给应用选择可用且适合的数据缓存服务器以提供数据缓存服务; 一数据序列化模块,用于对需要缓存的数据进行序列化以便于数据缓存服务器进行储存; 一数据缓存管理模块,用于获取数据缓存服务器上的缓存数据、以及将需要存储且序列化后的缓存数据转发到数据缓存服务器中进行储存。2.根据权利要求1所述的一种解决Hibernate分布式数据缓存的系统,其特征在于:所述数据缓存服务器路由模块从分布式数据缓存服务器中选择可用且适合的数据缓存服务器。3.—种基于上述权利要求1或2所述系统的数据缓存方法:其特征在于:包括以下步骤 (A)、应用操作数据时自动调用Hibernate数据缓存机制; (B)、由数据缓存服务器路由模块给应用选择可用且适合的数据缓存服务器; (C)数据缓存管理模块查询步骤B中所选择的数据缓存服务器是否存在应用操作时的数据缓存; (D)若存在,数据缓存管理模块查询所述数据缓存并获取数据缓存服务器中存在的数据,然后结束;若不存在,则继续进入下一步; (E)对于不存在于所述数据缓存服务器的缓存数据,数据序列化模块把需要缓存的数据序列化成便于数据缓存服务器保存的数据; (F)数据缓存管理模块转发序列化后的数据到所述数据缓存服务器进行存储。4.根据权利要求3所述的数据缓存方法:其特征在于:所述步骤B中数据缓存服务器路由模块从分布式数据缓存服务器中选择可用且适合的数据缓存服务器。5.根据权利要求3所述的数据缓存方法:其特征在于:所述步骤B包括: (BI)应用对数据缓存服务器非直接连接操作; (B2)应用通过查询缓存服务器路由模块的服务选择合适可用的数据缓存服务器; (B3)应用根据缓存服务器路由模块的服务返回数据缓存服务器进行连接操作。
【文档编号】G06F17/30GK106021569SQ201610377909
【公开日】2016年10月12日
【申请日】2016年5月31日
【发明人】余敬龙
【申请人】广东能龙教育股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1