分布式session的解决方案
集群、微服务架构中使用session的方式无非几种:
- 分布式
- 广泛使用,负载均衡,高可靠,缺点就是增加运维负担
伪分布式:利用会话黏滞(session stickly,又称session绑定) ,针对用户的第一次请求,转发给一服务器并记录.针对后续的 请求转发给它第一次请求的服务器上 ,简单但负载无法均衡
- 简单,但无法实现负载均衡,还需解决单点问题
无session:直接利用cookie,但cookie存储长度有限
- 广泛使用,必须依赖cookie,存储内容有限,可以跳过使用session的诸多坑
分布式session的实现方式
实现原理:借助分布式外部存储来存储session信息(如借助数据库、对象存储、分布式缓存、文件存储等);或是利用容器的session的广播复制功能。
推荐实现方式:
基于redis/memcache实现。需要重点保证redis/memcache的高可用,开发和运维成本高
伪分布式session的实现方式
借助nginx的nginx-sticky-module模块即可轻松实现session sticky
无session的实现方式
只使用cookie,但cookie里存储内容有限,需要量力而行