【技术心得】大型网站Session会话状态方案

本文深入探讨了大型网站在架构初期如何有效管理session,包括基于web服务器间的session复制、基于cookie的管理方式、基于state server的session管理及以memcached为session管理方式等四种方案的优劣对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

为什么要讨论大型网站session 的方案

首先作为大型网站,用户量大,session的量也就很大,以下是一个普通的大型网站的架构。

 




由于存在多台web服务器,进而可能存在多个子站点。在这些大型多台web服务器,以及多个子站点间,需要进行共同的session管理,由此产生的就是一个大型网站需要在网站架构初期考虑session管理的方案。

有哪些Session管理方案

第一种,基于web服务器间的session复制。在web服务器之间进行session复制的方案是当前成熟的方案,很多网站在采用。原理是:在一台web服务器发生session变化的时候,web服务器自动同步复制到另外的web服务器上。就java领域而言,即在调用session.setAttribute()方案的时候会触发session复制。



基于web服务器间的session复制的session管理的缺点是当web服务器增多或者是遇到某些session复制性能不高的web服务器时,多web服务器间的session复制将是很大的性能开销。

 

第二种,基于cookie的管理方式。从大型网站的设计原则来看,其中有一条就是减少session的使用,能用cookie的尽量用cookie。 考虑用户登录的场景,在web服务器A收到登录的请求时,将登录的信息以加密cookie的方式存在在客户端。

基于cookie的管理方式的session管理的缺点是,cookie是存在于浏览器端的,虽然经过加密,但是对于某些数据还是有风险的。因此对安全性高的网站不适用。

 

第三种,基于state serversession管理方式。在.net领域提供一种经常使用的state serversession管理的实现方式,即将session数据发送到state server储存,同时将数据持久化到在state server对应的sql server数据库中。


第四种是以memcachedsession管理方式。在php领域常用,这是一种非常常见的解决方案,这是一种非常利于扩展的session管理解决方案,因为memcached集群的可扩展性是非常强的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值