Skip to main content

session在微服务架构中的问题

· 2 min read

下图是单体架构模拟用户登录的过程

  • 1,用户在客户端输入用户名和密码
  • 2,web服务器去数据库中查询用户
  • 3,失败,则返回401;成功则返回用户
  • 4, 生成一条session
  • 5,设置sessionid到cookie中
  • 6,下次用户再请求的时候,浏览器的header就会带上这个cookie
  • 7,组件(也就是中间件)会检查sessionid的合法性,从而判断是否要放行/拦截

微服务是独立的

但是微服务就不一样的,因为微服务是独立的,这就意味着单体服务和数据库是一起的

如上图,用户成功登录后,拿着sessionid来访问商品服务,由于商品服务是没有这个sessionid的则会出问题

解决办法

可以用redis共享session