CN106021569A - 一种解决Hibernate分布式数据缓存的方法与系统 - Google Patents

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

Info

Publication number
CN106021569A
CN106021569A CN201610377909.8A CN201610377909A CN106021569A CN 106021569 A CN106021569 A CN 106021569A CN 201610377909 A CN201610377909 A CN 201610377909A CN 106021569 A CN106021569 A CN 106021569A
Authority
CN
China
Prior art keywords
data
data cache
cache server
buffer storage
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610377909.8A
Other languages
English (en)
Inventor
余敬龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Nenglong Education Co ltd
Original Assignee
Guangdong Nenglong Education Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Nenglong Education Co ltd filed Critical Guangdong Nenglong Education Co ltd
Priority to CN201610377909.8A priority Critical patent/CN106021569A/zh
Publication of CN106021569A publication Critical patent/CN106021569A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种解决Hibernate分布式数据缓存的系统及方法,其中系统包括:数据缓存服务器路由模块,用于给应用选择可用且适合的数据缓存服务器以提供数据缓存服务;数据序列化模块,用于对需要缓存的数据进行序列化以便于数据缓存服务器进行储存;数据缓存管理模块,用于获取数据缓存服务器上的缓存数据、以及将需要存储且序列化后的缓存数据转发到数据缓存服务器中进行储存。本发明对比现有的提供对Hibernate支持的数据缓存的技术方案,本方案能在不增加开发者的开发成本的前提下,把缓存数据保存于分布式数据缓存服务器,且当分布式数据缓存集群服务器中部分服务器无法提供服务时,亦能保证数据缓存的完整性和缓存服务。

Description

一种解决 Hibernate 分布式数据缓存的方法与系统
技术领域
本发明属于数据缓存管理领域,具体涉及一种解决Hibernate分布式数据缓存的方法与系统。
背景技术
Hibernate是一个开放源代码的对象关系映射框架,它对java数据库连接进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate能够提高开发者开发服务应用的开发速度,并能高效地进行数据库操作。且当增加Hibernate数据缓存功能,能进一步加快Hibernate的处理速度。所以大量的服务应用使用了该技术框架。
随着时代的发展,服务应用的访问量不断增加,需要增加多个应用同时提供服务才能保证服务能正常运行。但是由于Hibernate 自身提供的数据缓存只能为单个服务应用提供数据缓存功能,多个服务应用独立使用缓存会出现多份缓存数据存在,无法对缓存数据统一管理,容易导致数据出现错误。同时Hibernate缓存无法给多个其他服务应用共用数据缓存,也难以增加缓存空间以提高缓存的命中率。
为解决以上问题,现有的方案采用以下三种:
1.Ehcache 数据缓存,能把数据缓存在本地服务应用内存中。多个服务应用之间使用中间件Terracotta 进行数据同步。其中,Ehcache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,Terracotta 是负责实现高性能、高可用性、高稳定性的企业级Java集群的中间件。
2.Memcached数据缓存,能把数据存放到统一的分布式数据缓存服务器,并能被多个服务应用共享使用。其中,Memcached 是一个高性能的分布式数据缓存系统,分布式数据缓存服务器 是数据缓存系统服务器集群。
3.开发者在数据操作过程中显式增加数据缓存处理流程。
然而,上述方案一定程度上实现了多个其他服务应用共用数据缓存,但是开发者在程序中显式增加数据缓存的处理流程,会增大开发的时间和难度,且会导致代码可读性下降。
使用Ehcache数据缓存时,当出现多个服务应用需要缓存数据同步时,会导致多个应用存在多份相同的缓存数据。安装与配置中间件Terracotta进行多个服务应用缓存数据同步步骤非常繁琐复杂,且数据同步极易出现缺漏。
使用Memcached 数据缓存时,当分布式数据缓存服务器中一台服务器出现无法提供服务时,将会导致部分数据缓存失败。
发明内容
为解决上述技术问题,本发明的目的是提供一种解决Hibernate分布式数据缓存的方法与系统。
本发明采用的技术方案是:
一种解决Hibernate分布式数据缓存的系统,包括:
一数据缓存服务器路由模块,用于给应用选择可用且适合的数据缓存服务器以提供数据缓存服务;
一数据序列化模块,用于对需要缓存的数据进行序列化以便于数据缓存服务器进行储存;
一数据缓存管理模块,用于获取数据缓存服务器上的缓存数据、以及将需要存储且序列化后的缓存数据转发到数据缓存服务器中进行储存。
进一步,所述数据缓存服务器路由模块从分布式数据缓存服务器中选择可用且适合的数据缓存服务器。
本发明还包括与上述系统同一发明构思的数据缓存方法:包括以下步骤:
(A)、应用操作数据时自动调用Hibernate数据缓存机制;
(B)、由数据缓存服务器路由模块给应用选择可用且适合的数据缓存服务器;
(C)数据缓存管理模块查询步骤B中所选择的数据缓存服务器是否存在应用操作时的数据缓存;
(D)若存在,数据缓存管理模块查询所述数据缓存并获取数据缓存服务器中存在的数据,然后结束;若不存在,则继续进入下一步;
(E)对于不存在于所述数据缓存服务器的缓存数据,数据序列化模块把需要缓存的数据序列化成便于数据缓存服务器保存的数据;
(F)数据缓存管理模块转发序列化后的数据到所述数据缓存服务器进行存储。
进一步,所述步骤B中数据缓存服务器路由模块从分布式数据缓存服务器中选择可用且适合的数据缓存服务器。
进一步,所述步骤B包括:
(B1)应用对数据缓存服务器非直接连接操作;
(B2)应用通过查询缓存服务器路由模块的服务选择合适可用的数据缓存服务器;
(B3)应用根据缓存服务器路由模块的服务返回数据缓存服务器进行连接操作。
本发明的有益效果:
本发明对比现有的提供对Hibernate支持的数据缓存的技术方案,本方案能在不增加开发者的开发成本的前提下,把缓存数据保存于分布式数据缓存服务器,且当分布式数据缓存集群服务器中部分服务器无法提供服务时,亦能保证数据缓存的完整性和缓存服务。
附图说明
下面结合附图对本发明的具体实施方式做进一步的说明。
图1是本发明数据缓存系统的原理图;
图2是本发明数据缓存方法的步骤B子流程图。
具体实施方式
参考图1所示,为本发明的一种解决Hibernate分布式数据缓存的系统,包括:
一数据缓存服务器路由模块,用于给应用从分布式数据缓存服务器中选择可用且适合的数据缓存服务器以提供数据缓存服务;
一数据序列化模块,用于对需要缓存的数据进行序列化以便于数据缓存服务器进行储存;
一数据缓存管理模块,用于获取数据缓存服务器上的缓存数据、以及将需要存储且序列化后的缓存数据转发到数据缓存服务器中进行储存。
本发明还包括与上述系统同一发明构思的数据缓存方法:包括以下步骤:
(A)、应用操作数据时自动调用Hibernate数据缓存机制;
(B)、由数据缓存服务器路由模块给应用从分布式数据缓存服务器中选择可用且适合的数据缓存服务器;
(C)数据缓存管理模块查询步骤B中所选择的数据缓存服务器是否存在应用操作时的数据缓存;
(D)若存在,数据缓存管理模块查询所述数据缓存并获取数据缓存服务器中存在的数据,然后结束;若不存在,则继续进入下一步;
(E)对于不存在于所述数据缓存服务器的缓存数据,数据序列化模块把需要缓存的数据序列化成便于数据缓存服务器保存的数据;
(F)数据缓存管理模块转发序列化后的数据到所述数据缓存服务器进行存储。
如图2所示,所述步骤B包括:
(B1)应用对数据缓存服务器非直接连接操作;
(B2)应用通过查询缓存服务器路由模块的服务选择合适可用的数据缓存服务器;
(B3)应用根据缓存服务器路由模块的服务返回数据缓存服务器进行连接操作。
如上所述,可以看出本发明方法基于Hibernate缓存机制,只需要简单的进行配置即可使Hibernate拥有数据缓存功能,同时多个应用能共用缓存服务中的数据并能保证在分布式数据缓存服务器中出现不可用的服务器亦能保证正常的缓存服务。
以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。

Claims (5)

1.一种解决Hibernate分布式数据缓存的系统,其特征在于包括:
一数据缓存服务器路由模块,用于给应用选择可用且适合的数据缓存服务器以提供数据缓存服务;
一数据序列化模块,用于对需要缓存的数据进行序列化以便于数据缓存服务器进行储存;
一数据缓存管理模块,用于获取数据缓存服务器上的缓存数据、以及将需要存储且序列化后的缓存数据转发到数据缓存服务器中进行储存。
2.根据权利要求1所述的一种解决Hibernate分布式数据缓存的系统,其特征在于:所述数据缓存服务器路由模块从分布式数据缓存服务器中选择可用且适合的数据缓存服务器。
3.一种基于上述权利要求1或2所述系统的数据缓存方法:其特征在于:包括以下步骤
(A)、应用操作数据时自动调用Hibernate数据缓存机制;
(B)、由数据缓存服务器路由模块给应用选择可用且适合的数据缓存服务器;
(C)数据缓存管理模块查询步骤B中所选择的数据缓存服务器是否存在应用操作时的数据缓存;
(D)若存在,数据缓存管理模块查询所述数据缓存并获取数据缓存服务器中存在的数据,然后结束;若不存在,则继续进入下一步;
(E)对于不存在于所述数据缓存服务器的缓存数据,数据序列化模块把需要缓存的数据序列化成便于数据缓存服务器保存的数据;
(F)数据缓存管理模块转发序列化后的数据到所述数据缓存服务器进行存储。
4.根据权利要求3所述的数据缓存方法:其特征在于:所述步骤B中数据缓存服务器路由模块从分布式数据缓存服务器中选择可用且适合的数据缓存服务器。
5.根据权利要求3所述的数据缓存方法:其特征在于:所述步骤B包括:
(B1)应用对数据缓存服务器非直接连接操作;
(B2)应用通过查询缓存服务器路由模块的服务选择合适可用的数据缓存服务器;
(B3)应用根据缓存服务器路由模块的服务返回数据缓存服务器进行连接操作。
CN201610377909.8A 2016-05-31 2016-05-31 一种解决Hibernate分布式数据缓存的方法与系统 Pending CN106021569A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610377909.8A CN106021569A (zh) 2016-05-31 2016-05-31 一种解决Hibernate分布式数据缓存的方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610377909.8A CN106021569A (zh) 2016-05-31 2016-05-31 一种解决Hibernate分布式数据缓存的方法与系统

Publications (1)

Publication Number Publication Date
CN106021569A true CN106021569A (zh) 2016-10-12

Family

ID=57092842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610377909.8A Pending CN106021569A (zh) 2016-05-31 2016-05-31 一种解决Hibernate分布式数据缓存的方法与系统

Country Status (1)

Country Link
CN (1) CN106021569A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733701A (zh) * 2017-04-20 2018-11-02 杭州施强教育科技有限公司 一种应用于在线教育的查询页面缓存控制方法
CN110166553A (zh) * 2019-05-22 2019-08-23 苏州浪潮智能科技有限公司 一种数据访问方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499095A (zh) * 2009-03-11 2009-08-05 南京联创科技股份有限公司 用于数据共享平台的构建缓冲的方法
CN103870393A (zh) * 2013-07-09 2014-06-18 携程计算机技术(上海)有限公司 缓存管理方法及系统
CN104104698A (zh) * 2013-04-01 2014-10-15 深圳维盟科技有限公司 Web数据缓存处理方法、装置和系统
CN104219327A (zh) * 2014-09-27 2014-12-17 上海瀚之友信息技术服务有限公司 一种分布式缓存系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499095A (zh) * 2009-03-11 2009-08-05 南京联创科技股份有限公司 用于数据共享平台的构建缓冲的方法
CN104104698A (zh) * 2013-04-01 2014-10-15 深圳维盟科技有限公司 Web数据缓存处理方法、装置和系统
CN103870393A (zh) * 2013-07-09 2014-06-18 携程计算机技术(上海)有限公司 缓存管理方法及系统
CN104219327A (zh) * 2014-09-27 2014-12-17 上海瀚之友信息技术服务有限公司 一种分布式缓存系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733701A (zh) * 2017-04-20 2018-11-02 杭州施强教育科技有限公司 一种应用于在线教育的查询页面缓存控制方法
CN110166553A (zh) * 2019-05-22 2019-08-23 苏州浪潮智能科技有限公司 一种数据访问方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN103209223B (zh) 分布式应用会话信息共享方法、系统和应用服务器
AU2010232614B2 (en) Architectural pattern for persistent web application design
US7644129B2 (en) Persistence of common reliable messaging data
US20140122572A1 (en) Enterprise service bus routing system
US10331613B2 (en) Methods for enabling direct memory access (DMA) capable devices for remote DMA (RDMA) usage and devices therof
CN105871959A (zh) 一种消息传递的方法、系统和装置
US11126625B2 (en) Caching techniques for a database change stream
CN105915612A (zh) 推送消息获取、消息推送方法及装置
CN104537013B (zh) 一种处理数据的方法和装置
EP2618278B1 (en) Synchronizing endpoint data stores having disparate schemas
US20210042174A1 (en) Distributed queueing over a redis cluster
CN104468299A (zh) 基于用户规则的企业服务总线系统
CN104852939A (zh) 一种部署能力接口的方法和系统
CN106021569A (zh) 一种解决Hibernate分布式数据缓存的方法与系统
CN104376096A (zh) 基于缓冲区的异步更新的方法
US20120079063A1 (en) Method, apparatus and system for providing event notifications across a plurality of computers
US20210311794A1 (en) System and method for implementing a standalone application module
US8341368B2 (en) Automatic reallocation of structured external storage structures
US20100257148A1 (en) Reduced bandwidth cache coherency via checksum exchange
US7929526B2 (en) Direct messaging in distributed memory systems
US11924271B2 (en) Preventing duplicative file processing
CN105930519A (zh) 一种基于集群文件系统的全局共享读缓存方法
US20160308723A1 (en) Capability determination for computing resource allocation
US11729279B2 (en) System and method for remote assisted optimization of native services
AU2018303583A1 (en) Method to set up and tear down cloud environments based on a schedule obtained from one or more hosted calendars

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20161012