當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring Boot 分布式会话
生活随笔
收集整理的這篇文章主要介紹了
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=36000Spring Boot會自動把session從文件存儲方式切換到Redis方式,根本不需要再做任何配置。
方法二
如果配置的Redis的不是自己在維護,不能夠更改它的配置(如應用程序部署在阿里云,同時使用阿里云的Redis數據庫),那就有點麻煩了。
額外功能
因為方法1需要Redis的一個功能:
默認情況下,這個功能是不開啟的。
開啟額外功能
如果你要使用方法1,你就必須通過下面的命令,來讓你的Reids開啟這個功能。
那就必須新建如下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 分布式会话的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ 基类和派生类的析构函数
- 下一篇: Spring通知类型及使用ProxyFa