如果我们是同一个网站,在多台服务器上部署,并且访问同一个域名,这种类似于分布式session,目前比较简单的解决方案用nginx做代理就可以实现。
在单服务器web应用中,登录用户信息只需存在该服务的session中,这是我们几年前最长见的办法。而在当今分布式系统的流行中,微服务已成为主流,用户登录由某一个单点服务完成并存储session后,在高并发量的请求(需要验证登录信息)到达服务端的时候通过负载均衡的方式分发到集群中的某个服务器,这样就有可能导致同一个用户的多次请求被分发到集群的不同服务器上,就会出现取不到session数据的情况,于是session的共享就成了一个问题。目前实现session共享的解决方案:
Seata
Sentinel
Nacos
SpringCloud Alibaba
SpringCloud Sleuth分布式请求链路追踪
SpringCloud Stream消息驱动
SpringCloud Bus 消息总线
SpringCloud config分布式配置中心
1 / 2