您好,登錄后才能下訂單哦!
這篇文章為大家帶來有關實現session共享的三種方式的詳細介紹。大部分知識點都是大家經常用到的,為此分享給大家做個參考。一起跟隨小編過來看看吧。
1.tomcat的session共享
優點:不需要額外開發,只需搭建tomcat集群即可
缺點:tomcat 是全局session復制,集群內每個tomcat的session完全同步保存著全部的session, 在大規模應用的時候,用戶過多,集群內tomcat數量過多,session的全局復制會導致集群性能下降, 因此,tomcat的數量不能太多,而且依賴tomcat容器移植性不好(所以不采用)
2.用cookie同步session
這種完全把客戶的登陸信息保存在客戶端的cookie中,每次請求帶著cookie中的Token
優點:由于完全舍棄了session 會減輕服務器端的壓力。
缺點:是把信息暴露在外,就算有加密算法還是存在安全問題。禁止使用cookie的情況下無效。
3.redis 集中管理session(常用的方式)
優點:redis為內存數據庫,讀寫效率高,并可在集群環境下做高可用, 項目案例 www.1b23.com
下面就介紹下第三種的實現方式 spring boot 整合 redis session 做的session共享
一、加入依賴
Xml代碼
<!-- redis 依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- session redis 共享 -->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
二、yml文件
Yml代碼
server:
port: 8080
spring:
application:
name: test-session
redis:
password: 12345678
database: 0
host: 127.0.0.1
port: 6379
三 啟動類加入 @EnableRedisHttpSession
Java代碼
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
@EnableEurekaServer
@SpringBootApplication
@EnableRedisHttpSession
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
以上就是實現session共享的三種方式的詳細介紹,詳細使用情況還需要大家自己親自動手使用過才能領會。如果想了解更多相關內容,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。