Session复制的解决方案,你知道几种?

时间:2024-04-08 20:58:02

1.负载均衡

请求分发的技术,可以是软件诸如Nginx,Apache 也可以是硬件诸如 F5等。负责接受请求并胡处理的服务器的集合,叫做集群

Session复制的解决方案,你知道几种?
(1) HAProxy

  • 工作第四层、七层
  • Session保持支持URL检测
  • 并发处理极佳
  • 负载均衡算法多

(2) **LVS **

  • 工作在第四层
  • 工作稳定
  • 应用范围广
  • 配置简单
  • 不支持正则处理
  • 不能做动静分离

(3) Nginx

  • 安装配置简单
  • 占用内存少
  • 并发处理能力强3W+

负载均衡算法

  • 轮询加权: 加权轮询,权重大就轮询2次
  • 随机算法,加权随机: 随机分发请求,但是从概率上而言,访问基数足够大的情况下,基本等同于轮询
  • 最小连接数: 在多个服务器中,与处理连接数(会话数)最少的服务器进行通信的算法
  • IP哈希算法: 根据客户端IP,哈希取模,得到的结果便是访问的服务器号
  • URL散列: 同一URL发往同一服务器

2.Session &Cookie

Http是无状态的

Session复制的解决方案,你知道几种?
Session 就是缓存在内存中(本地应用缓存),服务重启会丢失

Cookie 是以当前域名为Cookie名存储的,再次访问相同域名会自动带上Cookie信息,Cookie信息里面含JSESSIONID

3.为什么负载均衡下Session不一致

Session复制的解决方案,你知道几种?

4.解决Session一致性的方法

  • Sticky Sessions : 粘带Session
  • Session replication :Session 复制
  • Shared Session :Session共享

5. 解决方案

5.1 基于IP_HASH的负载均衡

Nginx_HASH

Session复制的解决方案,你知道几种?

Session复制的解决方案,你知道几种?
优点

  • 配置简单,不入侵应用个,无额外的代码修改
  • 便于服务器水平拓展

缺点

  • 服务器重启Session丢失
  • 存在单点负载高的风险
  • 单点故障问题

5.2 Session 复制

Session复制的解决方案,你知道几种?

优点

  • 不入侵应用
  • 便于服务器水平扩展
  • 能使用各种负载 均衡策略

缺点

  • 性能低
  • 内存消耗
  • 代码考虑

5.3 Session 共享

Session复制的解决方案,你知道几种?
优点

  • 能适应各种负载均衡策略
  • 服务器重启或宕机不会造成Session丢失
  • 扩展能力强
  • 适合集群数量大时使用

缺点

  • 对应用有入侵,需增加相关配置
  • 序列化反序列化消耗CPU性能

Session复制的解决方案,你知道几种?

6.总结

Session复制的解决方案,你知道几种?

史上最全的并发编程脑图:https://www.processon.com/view/5f472fd25653bb576974908f