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信息。当然,不影响应用。 解决方法见:...
模拟Tomcat的运行机制,模拟Tomcat。
(3) session server:redis(store), memcached(cache) 共享存储 分析:新建立一个存放各个tomcat session记录的server,每台tomcat服务器都将自己的session记录在这个服务器中,用户再次访问,每台tomcat 都从这个...
2、配置解压之后的redis-data-cache.properties(根据你的redis配置吧),配置完将这个文件放入tomcat/conf文件夹中;3、配置tomcat/cong/context.xml,增加如下两行: <Value className="tomcat.request.session....
tomcat 6/7/8 自带防暴力破解机制,通过塞满cache,挤出已锁定账号,实现完美绕过。
压缩包里面的jar放到tomcat/lib,压缩包里的context.xml配置配到tomcat/context.xml
session 共享 tomcat-redis-session-manager 所需要的jar 和 redis-data-cache.properties文件 (绝对可用) 已经完整测试
NULL 博文链接:https://hw1287789687.iteye.com/blog/1947557
NULL 博文链接:https://hawthorstein.iteye.com/blog/758749
tomcat缓存的用法
用于ssh${your machine username}cachecloud.machine.password服务器密码,用于ssh${your machine password}web.portspring-boot内嵌tomcat启动端口80803、启动cachecloud系统 mvn spring-boot:run1. 构建:mvn -...
Session Cache Server 及Tomcat集群架构之二:用Memcached 实现简单Session Cache Server
redis实现tomcat的session共享所需redis-data-cache.properties
LoadModule file_cache_module modules/mod_file_cache.so LoadModule cache_module modules/mod_cache.so LoadModule disk_cache_module modules/mod_disk_cache.so LoadModule mem_cache_module modules/mod_mem_...
注:可以进入“...\Baioogle-SearchEngine Embed in Tomcat\apache-tomcat-5.5.28-embed\webapps\Root\cache”目录,执行里面的bat文件爬取感兴趣的网站,之后再建立快照及索引库。相关操作见随源代码附带的ReadMe....
使用Nginx做的负载均衡,memcache做高速cache,tomcat7.0.22做web容器环境下的session共享及缓存。 能够做到重启tomcatsession不失效或多个tomcat应用下session共享。 该RAR包包含了配置所需要的全部jar文件。
内容1:spingboot打包成 jar包 内置 tomcat 直接可以运行,out\artifacts 点 startup.bat ,maven,直接下载动态库 jdk1.8 64位。 内置 log4j2 日志文件,每天生成日志 application.properties 配置如下 #静态...
struts2.3.20版本jar包,用于解决tomcat8下抛出如下警告: 警告: couldn't clear tomcat cache
即使用cacheDB存取session信息,应用服务器接受新请求将session信息保存在cache DB中,当应用服务器发生故障时,调度器会遍历寻找可用节点,分发请求,当应用服务器发现session不在本机内存时,则去cacheDB中查找,...
wk.ajp13.cache_timeout=600 wk.ajp13.socket_keepalive=1 wk.ajp13.socket_timeout=300 conf/httpd.conf #虚拟主机 # Virtual hosts Include conf/extra/httpd-vhosts.conf #TOMCAT整合开始 LoadModule jk_...