lzf79 发表于 2015-8-10 12:24:52

Hibernate缓存 Memcached介绍集群及tomcat的配置

内容可能会让大家觉得标题党,希望多少能收获点吧!
Memcached介绍和 tomcat 配置
先自己看孙卫琴hibernate书总结
Hibernate有两种缓存机制 一级和二级缓存 一级缓存(session范围内)为事物级别的缓存即hibernate 的session自带有这种缓存。二级缓存SessionFactory范围内的缓存其分为两种缓存:进程级别的缓存和集群级别的缓存
Hibernate并发有以下几种策略解决隔离级别
隔离级别的设置在entity配置id下配置 具体是。。。
Transactional、read-write、nonstrict-read-write、read-only
进程(内存)级别的缓存一般用ehcache为第三方框架(hibernate自己开发)配置简单
集群级别的缓存一般用jbooscache为第三方框架 会在服务端建立临时文件方式存储 适用于修改少 老查询

Memcached介绍
memcached是免费、开源、高性能分布式的对象内存缓存系统,被广泛用于动态数据的缓存,可大大减低数据库负载与压力,提高数据库系统的性能与容量,从而极大地增加动态网页的效率与网速。它的好处是显而异见的。
原理
(1) 服务器集群
在实际应用中,会部署多个应用服务器节点以实现负载均衡和失效保护,前端负载均衡器会将请求转发给应用服务器节点。
以session为例,应用服务器会将session数据在本地存储,同时连接memcached节点,将之存储到memcached节点;
当应用服务器节点宕机时,请求会被转发到其他应用服务器节点,该节点本地没有存储指定session的数据,它会连接memcached节点,并从中获取指定session的数据,这样就避免了应用服务器节点宕机所带来的session数据丢失。
(2) 单点登录
多应用系统的单点登录与上述负载均衡和失效保护类似:
用户在A系统登录后,A系统(对应一个web application)将session数据在本地存储,同时连接memcached节点,将之存储到memcached节点;
当用户访问B系统时,B系统(对应另一个web application)本地没有存储该用户的session数据,它会连接memcached节点,并从中获取该用户的session数据,这样就实现了在多应用系统间共享session
(3) memcached节点失效保护
部署多个memcached节点可以有效地预防单memcached节点时memcached节点宕机所带来的风险。
当主memcached节点可用时,应用服务器从主memcached节点存取数据,并同步至备份memcached节点;
当主memcached节点失效时,应用服务器会尝试连接备份memcached节点,并转而从备份memcached节点存取数据;
主memcached节点恢复正常后,会自动恢复数据(通过备份memcached节点?抑或是应用服务器?),应用服务器从主memcached节点存取数据。


Tomcat的conf下的Server.xml,还需要一个jar包
   
实体session路径设置为true
      
                     
                                    
                           
                     
                                    
                           
      
同name的一个host 项目共享了两个项目a b
页: [1]
查看完整版本: Hibernate缓存 Memcached介绍集群及tomcat的配置