分布式session共享

2021-09-25 16:00:48 字數 1427 閱讀 9519

為什麼會出現session共享問題?

客戶端與伺服器互動時會產生唯一的sessionid用於標記使用者,但是在分布式架構中,如果還是採用 session 的方式,使用者發起請求,通過 nginx 做請求**時,並不知道是**到伺服器1還是伺服器2,所以就會出現session共享問題。

今天主要記錄使用 spring-session 框架解決 session 共享問題。

其主要原理就是使用 redis 記錄 session 實現session 共享。

二、**部分

1、引入依賴

org.springframework.sessiongroupid>

spring-session-data-redisartifactid>

dependency>

org.apache.commonsgroupid>

commons-pool2artifactid>

dependency>

redis.clientsgroupid>

jedisartifactid>

dependency>

redis:

hostname: 192.168

.10.180

port: 6379

password: 123456

3、sessionconfig

/**

* 這個類用配置redis伺服器的連線

* maxinactiveintervalinseconds為springsession的過期時間(單位:秒)

}

4、nginx配置

#user  nobody;

worker_processes

1;#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events 

server       }}

分布式session共享

什麼是session 伺服器為每個使用者建立乙個會話,儲存使用者的相關資訊,以便多次請求能夠定位到同乙個上下文。當使用者請求來自應用程式的 web 頁時,如果該使用者還沒有會話,則 web 伺服器將自動建立乙個 session 物件。當會話過期或被放棄後,伺服器將終止該會話並銷毀。分布式sessio...

shiro分布式session共享

使用nginx tomcat進行負載均衡時,希望使用輪詢方式進行負載。但是如果使用輪詢方式的話,可能會訪問不同的tomcat,此時如果不進行session共享,則相當於是乙個新的session。就比如現有系統都是需要認證登入的系統,如果沒有session共享,則會導致使用者退出登入。當我們使用了ng...

分布式如何實現session共享

我們實現的方案可以說是第二種方案和第三種方案的合體,可以利用gemfire實現session複製共享,還可以將session維護在redis中實現session共享,同時可以將session維護在客戶端的cookie中,但是前提是資料要加密。這三種方式可以迅速切換,而不影響應用正常執行。我們在實踐中...