下图是单体架构模拟用户登录的过程
- 1,用户在客户端输入用户名和密码
- 2,web服务器去数据库中查询用户
- 3,失败,则返回401;成功则返回用户
- 4, 生成一条session
- 5,设置sessionid到cookie中
- 6,下次用户再请求的时候,浏览器的header就会带上这个cookie
- 7,组件(也就是中间件)会检查sessionid的合法性,从而判断是否要放行/拦截
微服务是独立的
但是微服务就不一样的,因为微服务是独立的,这就意味着单体服务和数据库是一起的
如上图,用户成功登录后,拿着sessionid来访问商品服务,由于商品服务是没有这个sessionid的则会出问题
解决办法
可以用redis共享session