多服务器共享Session的解决方案

本文探讨了在多服务器环境下如何实现Session共享,包括写客户端Cookie、sticky模式、数据库存储、NFS共享和基于内存(如Redis、Memcache)的方案。每种方法的优缺点被详细阐述,其中基于内存的Session共享方案被推荐为最佳实践。
摘要由CSDN通过智能技术生成

问题

为了满足足够大的应用,满足更多的客户,于是我们架设了N台Web服务器(N>=2),在多台Web服务器的情况下,我们会涉及到一个问题:用户登陆一台服务器以后,如果在跨越到另一台服务器的时候能够继续使用客户的Session?

1、写客户端Cookie的方式

把原来存储在服务器磁盘上的session数据存储到客户端的cookie中去。(一般是把session数据按照自己定义的加密规则(如:采用DES、RSA等进行明文加解密;再由MD5、SHA-1等算法进行防伪认证),加密后后存在cookie中。)

优势

服务器的压力减小了,因为session数据不存在服务器磁盘上,无需额外的服务器资源。根本就不会出现session读取不到的问题。

劣势

  1. 网络请求占用很多。每次请求时,客户端都要通过cookie发送session数据给服务器。要占用很多带宽了,成本增高(服务器购买带宽是一个很大费用)。
  2. 浏览器对cookie的大小个数都存在限制。每个浏览器限制是不同的(大概4kb左右)。
  3. 安全问题,虽然通过了加密,等你不能保证不会被人解密

总结:
这方案不适合高访问量的情况下,因为高访问量的情况下,每次请求浏览器都要发送session数据给服务器。一般一个cookie大小2k的样子。

2、sticky模式(粘性会话模式)

用一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值