Session Cache Server 及Tomcat集群架构概念
或见本人CSDN博客
http://blog.csdn.net/myloon/archive/2010/09/06/5866456.aspx
1. Sessin Cache Server (Session 缓存服务器)[SCS]
特性:
1) 单个SCS:SCS中缓存Session数据,多个应用服务器共享SCS中Session;每次有新的Session或新的Session数据更新时,除了正常的缓存外,还缓存有变化的Session ID和数据Key,以通知或被其他SCS感知同步数据;通过LRU算法,对不常使用的Session进行持久化(文件,数据库等)。
分析:
解决了多个AppServer之间的Session共享,Session数据可集中储存在SCS上。
随着Application Server的增加,SCS的压力不断上升,其中存储的Session数量会变得巨大,内存不够用。
适合访问量不是巨大的Web站点。
2) 配置多个SCS: SCS之间只同步新增和变化数据,所有SCS中Session数据都一样;SCS之间是平等的,其中一个SCS有数据同步时,通知所有SCS同步数据。
分析:只是单台SCS的物理扩展。随着用户增加,Application Server也随之增加,虽然可以通过增加SCS减低压力,但其中存储的Session数量会变得巨大,内存不够用,并且需要同步的数据变得巨大,影响网络传输,所有的SCS维护同一Session副本有点浪费,此种情况类似JavaEE服务器Session复制的弊端。
3) SCS组:有一个或多个SCS形成SCS组,组内可根据需求扩展任意数量(N)的SCS;组内SCS分片存储Session,组内SCS彼此独立,组内每一个SCS维护不同的Session,提高性能和内存利用率;SCS组以主备(或多机镜像)模式,提供Failover,做到HA;Session客户端配置组内所有SCS,通过算法分别存储Session在不同的服务器上,提高性能,避免浪费维护Session;SCS组主备(或多个镜像)之间Session数据同步(只同步新增和变化数据);结合AppServer和负载均衡器实现集群,可提高集群性能。
l SCS组基于数据分片的思想提高集群性能,SCS组通过镜像做到高可用性和提高集群性能。
l 分片储存可以是分机保存Session,也可是保存对象数据。
l 对于同一Session和同一Key其对应SCS Num是稳定的。
l 分片储存算法:
(参考MemCached的分布式算法http://zhengdl126.javaeye.com/blog/420521)
u A求余分散(或者求余Hash):
此算法讲Key的hash值除以SCS组的SCS数量所得到的余数,而决定讲Cache的数据存储到哪一个SCS上,仍然以刚才key=1,value=user1和key=2,value=user2两个数据为例:
对于key=1, hash值%SCS数量=(1%2)=1,存储到SCS 2上;
对于key=2, hash值%SCS数量=(2%2)=0,存储到SCS 1上。
显然通过这种方式,Cache的数据就会分布在不同的SCS上了
u Consistent Hashing
SCS组:
分享到:
相关推荐
Tomcat默认cache尺寸是10M。新版本中,当evict以后仍没有空间存放新的数据时,则打印WARN信息。当然,不影响应用。 解决方法见:...
redis实现tomcat的session共享所需redis-data-cache.properties
<meta http-equiv="Cache-Control" content="no-cache"> ``` 2. **强制刷新**:在浏览器中使用强制刷新命令(通常是Ctrl+F5)来清空缓存并加载最新的资源。 #### 小结 通过上述方法,我们可以有效地解决Tomcat...
在Java Web开发中,Tomcat是一个广泛使用的应用服务器,它负责运行Servlet和JSP应用程序。在高并发或者分布式环境中,单个服务器的session管理可能无法满足需求,这时我们需要使用session共享来解决这个问题。本资源...
标题中的“启动tomcat报错org.hibernate.cache.CacheProvider”指的是在尝试启动Apache Tomcat服务器时遇到了与Hibernate缓存提供者相关的错误。这通常涉及到Hibernate框架的配置或运行时环境问题。Hibernate是一个...
- 可以查看每个HTTP请求的头信息,包括Cookie、Cache-Control、Content-Type等,以及响应状态码和大小。 3. **性能统计** - 提供页面加载时间、重定向时间、下载字节数等统计信息,帮助定位问题。 4. **资源缓存...
在Linux环境下,构建一个高效的Web服务架构通常会结合Nginx和Tomcat,利用Nginx的反向代理和负载均衡能力,以及Tomcat对于Java应用的出色支持。本配置指南将详细介绍如何在Linux系统中设置Nginx与Tomcat的负载均衡...
2. 使用缓存技术:如使用IIS的Output Cache或Tomcat的Cache Valve,减少重复计算和数据库查询。 3. 监控和日志:定期检查系统性能,通过日志分析找出瓶颈,进行针对性优化。 总之,IIS整合多个Tomcat是一项复杂但...
在IT行业中,尤其是在分布式系统和Web服务的领域,Session共享是一个关键问题。...在实际部署时,只需正确配置"redis-data-cache.properties",并将这些jar文件添加到Tomcat的类路径中,即可启用Redis作为Session存储。
<Resource name="JndiRedis" auth="Container" type="javax.cache.CacheManager" factory="org.redisson.jcache.JCacheManagerFactory" config="classpath:redisson/redisson.yaml"/> ``` 在项目类路径下创建`...
2、配置解压之后的redis-data-cache.properties(根据你的redis配置吧),配置完将这个文件放入tomcat/conf文件夹中;3、配置tomcat/cong/context.xml,增加如下两行: <Value className="tomcat.request.session....
根据提供的文件信息,我们可以详细探讨Session Cache Server(SCS)以及Tomcat集群架构的相关知识点。 首先,Session Cache Server 是用来集中管理和缓存应用服务器中的Session数据的一种服务器。它通过集群的方式...
Tomcat并没有内置的全局缓存,但如果你使用了某些缓存机制如 EhCache 或者 Spring 的 Cache Abstraction,可以在相应配置中查看缓存内容。对于特定应用的缓存,需要参照具体应用的文档来查找和查看。 7. **Tomcat...
- Caching:使用缓存模块如mod_expires和mod_cache,提高静态内容的响应速度。 - JNDI资源:在Tomcat中配置JNDI资源,使Apache和Tomcat共享数据库连接等资源。 通过以上步骤,Apache2.2和Tomcat6可以协同工作,...
标题中的“tomcat7+session共享(mencache)”指的是在Tomcat 7版本中实现基于Memcached的Session共享。在分布式系统中,由于用户在不同服务器之间切换时需要保持会话状态,所以Session共享成为了一个重要的问题。...
(3) session server:redis(store), memcached(cache) 共享存储 分析:新建立一个存放各个tomcat session记录的server,每台tomcat服务器都将自己的session记录在这个服务器中,用户再次访问,每台tomcat 都从这个...
标题 "nginx TOMCAT 文件下载 上传 进度条 缓存" 涉及到的是在Web服务器场景中,如何利用Nginx和Tomcat处理文件的下载、上传以及实现进度条显示和缓存优化的技术点。下面将详细介绍这些内容。 1. **Nginx与Tomcat的...
tomcat 6/7/8 自带防暴力破解机制,通过塞满cache,挤出已锁定账号,实现完美绕过。