分布式系统中对cookie和session的思考

背景

最近我们项目想上分布式,所以工作中涉及一些对springboot项目在项目架构上的思考

session和cookie的大概区别

(很多网站登录一次登录,可以很多次不用密码,其中就用到了session和cookie。所以用用户登录来说明)

cookie将用户登录信息保存在浏览器端,下次登录直接发送cookie,就不需要输入用户名密码;

session将用户信息保存在服务端的服务运行内存中,下次登录直接比较内存中的session,如果对比一直,就不要用户名密码。

(cookie如果数据多浪费传输带宽,cookie可以破解,session保存在服务器不安全,分布式的时候session共享问题)

session的问题

上面说session保存在服务器,那么如果同一个前端服务有多个实例怎么办?用户这次登陆A实例,下次是B实例,那么session就不能共享。

所以分布式需要解决session问题。(一般用redis集群来解决,session共享问题)

优秀的spring服务架构,需要做到服务无状态

去session(用Redis实现共享session)

一般cache也有类似的问题,所以一般都会用双cache,首先redis,然后搞一个默认的caffeine、guava等什么的。

原文地址:https://www.cnblogs.com/windy13/p/12616577.html