首页 运维 安全 session一致性设计

session一致性设计

Jun 25, 2021 pm 06:09 PM
1

session一致性

什么是session

web-server可以自动为同一个浏览器的访问用户自动创建session,提供存储功能。一般把用户登录信息存到session中。

什么是session一致性问题

当后端只有一台web-server的时候,每次http请求,都能找到正确的session。问题是不能满足高可用,一台server挂了就完蛋了。冗余+故障转移,部署多台web-server,nginx路由到不同的web-server。每次http请求都路由,不保证路由到同一个server,就有了一致性问题。

解决session一致性的常用方案

一致性hash

最先想到的方案,根据客户端IP做hash,保证同一个IP落在一个web-server上。还可用根据业务字段做hash,例如userId、cityId,使用更灵活。但这样破坏了单一原则,让网关和业务粘连,如非必要不推荐使用。优点:节省缓存,可用水平扩展。缺点:部分服务重启,会丢失session,导致部分用户重新登录。如果hash水平扩展,rehash后session重新分布,会有一部分用户路由不到session

session同步

多web-server之间的session互相同步,这样每个web-server都包含全部的session信息。缺点:因为包含全部session,集群数量受内存限制,扩展受限。

客户端存储

登录信息保存到客户端,每次请求带着用户信息。服务端完全无状态化,方便扩展。优点:服务端不用存储。缺点:每次http请求携带用户信息,浪费流量;存在信息泄露风险;cookie存储信息不能太多。

后端集中存储

web-server链接一个统一的存储,保存session信息,推荐存到redis集群,方便后续扩展。优点:没有信息泄露风险;水平扩展不会丢数据;缺点:增加了一次网络请求,需要修改业务代码,查询redis。

以上是session一致性设计的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)