日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot 分布式会话

發布時間:2025/3/12 javascript 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot 分布式会话 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

應用范圍

為了使Web能適應大規模的訪問,需要實現應用程序的集群部署實現集群部署首先要解決session的統一,即需要實現session的共享機制,即分布式會話

分布式Session的實現方式

基于resin/tomcat web容器本身的session復制機制基于NFS共享文件系統基于Cookie進行session共享基于數據庫的Session共享基于分布式緩存的Session共享,如memcached,Redis,jbosscache基于ZooKeeper的Session共享

下面我們將演示基于Spring Session的實現,這個是基于Redis緩存的Session共享。

方法一

如果配置的Redis的是自己在維護,那很方便就可以實現了。

添加依賴

只需要在pom文件添加以下依賴

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-redis</artifactId> </dependency><dependency><groupId>org.springframework.session</groupId><artifactId>spring-session</artifactId> </dependency>

啟動類添加@EnableRedisHttpSession注解

配置文件application.properties

spring.redis.host=localhost spring.redis.port=6379 server.session.timeout=36000

Spring Boot會自動把session從文件存儲方式切換到Redis方式,根本不需要再做任何配置。

方法二

如果配置的Redis的不是自己在維護,不能夠更改它的配置(如應用程序部署在阿里云,同時使用阿里云的Redis數據庫),那就有點麻煩了。

額外功能
因為方法1需要Redis的一個功能:

notify-keyspace-events

默認情況下,這個功能是不開啟的。

開啟額外功能
如果你要使用方法1,你就必須通過下面的命令,來讓你的Reids開啟這個功能。

redis-cli config set notify-keyspace-events Egx

那就必須新建如下RedisSessionConfig類,即可在不改變Redis配置的前提下使用Redis來存儲Session了。

RedisSessionConfig

package com.jege.spring.boot.Config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.session.data.redis.config.ConfigureRedisAction; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;/*** 在不改變Redis配置的前提下使用Redis來存儲Session了*/ @Configuration //在這里設置Session過期時間,單位:秒 @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 36000) public class RedisSessionConfig {@Beanpublic static ConfigureRedisAction configureRedisAction() {return ConfigureRedisAction.NO_OP;} }

Spring Session默認會話時間

Spring Session默認的Session過期時間是30分鐘。

采用方法1的時候,你可以在application.properties里配置

server.session.timeout=36000

來設置Session過期時間(單位是秒)。

如果采用方法2來配置Session,
那么application.properties里設置的Session過期時間是不起作用的。
必須使用上面RedisSessionConfig類里注解的參數來設置。

如果感覺不錯的話記得點贊喲!!!

總結

以上是生活随笔為你收集整理的Spring Boot 分布式会话的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。