1.关于开源中国的一些数据
2.OSChina的几种缓存策略
3.Ehcache缓存架构
4.实际运行存在的问题
5.混村系统选型时的考量
6.J2Cache--两级缓存框架(内存,磁盘)
每天 IP>50W
每天PV>300W
每天动态处理请求1000W
高峰期NginxStatus>15000
系统负载>50%
主服务器:
DELL SC1435->12G内存 AMD 2G*2/SATA*2
DELL R720 ->32G内存/Xeon E5520*2/SAS/RAID 1+0
CDN节点:
4个自建的CDN节点(电信、联通、移动、阿里云)
OSChina 的几种缓存策略
~对象缓存ID->object
~对象缓存List<id>而不是List<Bean>
~页面片段缓存
~页面缓存CDN(squid、varnish、Traffic Server)
缓存清除策略
1.Ehcache的自动清除(设置timeToLiveSeconds=3600)
2.程序清除
3.手工清除
Ehcache缓存框架
Ehcache是内存中的java缓存框架 特点:
内存中,速度快
两级缓存,内存跟磁盘
多区域(region)的缓存数据结构
缓存数据侦听接口
支持多种集群部署方式(JGroups/RMI/Ehcache Server)
实际运行的问题
高峰期重启导致的缓存雪崩
单节点对突发的攻击应付不足
多节点运行时缓存数据不同步
缓存系统选型
Ehcache集群方案的不足
集中式缓存的不足(redis,memcached)
是否可以取长补短?
J2Cache的设计思路
J2Cache的使用技巧
Ehcache的磁盘存储建立在内存中(/dev/shm/xxx)
尽量设置缓存永久性,通过程序进行更新
<cache name="pages" maxElementsInMemory="500" eternal="true" overflowToDisk="false"/>
j2Cache下一步计划
各级缓存的统计
使用HGET/HSET替代现有大哈希表的方式,暂时不考虑field批量删除性能地下
支持其他的缓存框架和服务
j2Cache获取方式:
http://git.oschina.net/Id/J2Cache