天天看點

SpringCloud 分布式 Session 共享同步

通常情況下,Tomcat、Jetty等Servlet容器,會預設将Session儲存在記憶體中。如果是單個伺服器執行個體的應用,将Session儲存在伺服器記憶體中是一個非常好的方案。但是這種方案有一個缺點,就是不利于擴充。

目前越來越多的應用采用分布式部署,用于實作高可用性和負載均衡等。那麼問題來了,如果将同一個應用部署在多個伺服器上通過負載均衡對外提供通路,如何實作Session共享?

實際上實作Session共享的方案很多,其中一種常用的就是使用Tomcat、Jetty等伺服器提供的Session共享功能,将Session的内容統一存儲在一個資料庫(如MySQL)或緩存(如Redis)中。

下面我們将在springcloud微服務項目中,使用redis實作簡單高效的session共享。官網:www.fhadmin.org

eureka-server:注冊中心

springcloud-session-redis:業務session所在項目

springcloud-session-zuul:路由網關

springcloud-session-redis項目

建立一個spring boot項目,命名springcloud-session-redis

pom

在application.yml中加入redis、eureka、port等配

springcloud-session-zuul項目

建立springboot項目,命名springcloud-session-zuul

繼續閱讀