SESSION集群
admin 发布于:2014-1-9 8:13 分类:系统架构 有 1539 人浏览,获得评论 0 条 标签: session 集群
1. 客户端cookie加密
优点:简单,高效。比较好的方法是自己采用cookie机制来实现一个session,在应用中使用此session实现。客户端解决方法.把session加密后存在cookie中,每次session信息被写在客服端,然后经浏览器再次提交到服务器.即使两次请求在集群中的两台服务器上完成,也可以到达session共享.这种解决方法的优点是session信息不用存放在服务器端,大大减轻了服务器的压力.另一个优点是一个session中的两次或多次请求可以在一个群集中的多个服务器上完成,可以避免单端故障..
缺点:缺点是由于受http协议头信心长度的限制,仅能够存储小部分的用户信息,同时Cookie化的 Session内容需要进行安全加解密(如:采用DES、RSA等进行明文加解密;再由MD5、SHA-1等算法进行防伪认证),另外它也会占用一定的带宽资源,因为浏览器会在请求当前域名下任何资源时将本地Cookie附加在http头中传递到服务器。
2. 使用共享存储来保存session
优点:使用nfs或windows文件共享都可以,或者专用的共享存储设备。
缺点:因为是网络磁盘,访问量大的时候IO存在瓶颈。共享存储是一个单点,这个可以通过raid来解决。
3. 使用数据库保存session
优点:使用数据库来保存session,就算服务器宕机了也没事,session照样在。
缺点:每次请求都进行数据库读写开销不小(使用内存数据库可以提高性能,宕机就会丢失数据。可供选择的内存数据库有BerkeleyDB,Mysql的内存表);
4. 使用memcached来保存session
优点:这种方式跟数据库类似,不过因为是内存存取的,性能自然要比数据库好多了。
缺点:memcached服务器一死,所有session全丢。
5. 使用redis来保存session
优点:这种方式跟数据库类似,不过因为是内存存取的,性能自然要比数据库好多了。因为redis有数据持久化功能,避免了用户其他内存方式服务器死掉,数据全部丢失的问题。完美。
6.使用硬件的方式保存session
优点: 如F5,支持session共享,且处理速度快。
缺点:不灵活,硬件贵。
7. session群集
优点:提供一个群集保存session共享信息.其他应用统统把自己的session信息存放到session群集服务器组.当应用系统需要session信息的时候直接到session群集服务器上读取.
8. session复制方案
优点:让用户的一个session在一个服务器完成.定时的备份session信息到salve上面.一台服务器down掉后,通过均衡服务器透明把用户的请求转发到群集中的其他服务器上,此时需要从salve上读取备份的session信息. 避免单点。