问题
为了满足足够大的应用,满足更多的客户,于是我们架设了N台Web服务器(N>=2),在多台Web服务器的情况下,我们会涉及到一个问题:用户登陆一台服务器以后,如果在跨越到另一台服务器的时候能够继续使用客户的Session?
1、写客户端Cookie的方式
把原来存储在服务器磁盘上的session数据存储到客户端的cookie中去。(一般是把session数据按照自己定义的加密规则(如:采用DES、RSA等进行明文加解密;再由MD5、SHA-1等算法进行防伪认证),加密后后存在cookie中。)
优势
服务器的压力减小了,因为session数据不存在服务器磁盘上,无需额外的服务器资源。根本就不会出现session读取不到的问题。
劣势
- 网络请求占用很多。每次请求时,客户端都要通过cookie发送session数据给服务器。要占用很多带宽了,成本增高(服务器购买带宽是一个很大费用)。
- 浏览器对cookie的大小个数都存在限制。每个浏览器限制是不同的(大概4kb左右)。
- 安全问题,虽然通过了加密,等你不能保证不会被人解密
总结:
这方案不适合高访问量的情况下,因为高访问量的情况下,每次请求浏览器都要发送session数据给服务器。一般一个cookie大小2k的样子。
2、sticky模式(粘性会话模式)
用一