面试专题:分布式架构下,Sesion共享有什么方案

  • 采用无状态服务,摒弃Session(比如使用Jwt)

  • 可以存入Cookie(因为Cookie是客户端存储,可能导致信息暴露,有安全风险)

  • 服务器之间进行Session同步,这样可以保障每台服务器都有当前的Session信息,不过当服务器比较多的时候,同步是会有延迟问题或者同步失败

  • IP绑定策略 使用ngnix(或者其他负载均衡硬件,比如F5)中的IP 绑定策略,同一个IP只能在同一台服务器访问,但是这样做就失去了多次均衡的意义,当挂掉一台服务器的时候,会影响一批用户的使用。现在互联网都在推行无状态请求

  • 使用Redis存储
    把Session放到Redis存储,虽然架构上会变得复杂,并且要多放问一次Redis服务,但是这样的方案好处是很大的

  • 实现了Session 共享

  • 可以水平扩展(增加Redis服务器)

  • 服务器重启Session不丢失(不过也要注意Session的刷新和失效机制)

  • 不仅可以跨服务器共享,还可以跨平台共享(比如网页端和PC端,或者微服务架构下的异构平台)

猜你喜欢

转载自blog.csdn.net/lxn1023143182/article/details/114542676