溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現(xiàn)spring cloud各個服務共享session登錄用戶信息

發(fā)布時間:2021-10-11 17:30:48 來源:億速云 閱讀:136 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“如何實現(xiàn)spring cloud各個服務共享session登錄用戶信息”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何實現(xiàn)spring cloud各個服務共享session登錄用戶信息”吧!

有3種解決的方案:

1.tomcat的session共享

優(yōu)點:不需要額外開發(fā),只需搭建tomcat集群即可

缺點:tomcat 是全局session復制,集群內(nèi)每個tomcat的session完全同步保存著全部的session, 在大規(guī)模應用的時候,用戶過多,集群內(nèi)tomcat數(shù)量過多,session的全局復制會導致集群性能下降, 因此,tomcat的數(shù)量不能太多,而且依賴tomcat容器移植性不好(所以不采用)

2.用cookie同步session 

這種完全把客戶的登陸信息保存在客戶端的cookie中,每次請求帶著cookie中的Token

優(yōu)點:由于完全舍棄了session 會減輕服務器端的壓力。

缺點:是把信息暴露在外,就算有加密算法還是存在安全問題。禁止使用cookie的情況下無效。

3.redis 集中管理session(常用的方式)

優(yōu)點:redis為內(nèi)存數(shù)據(jù)庫,讀寫效率高,并可在集群環(huán)境下做高可用

下面就介紹下第三種的實現(xiàn)方式 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  //java項目www.fhadmin.orgpublic class EurekaServerApplication {    public static void main(String[] args) SpringApplication.run(EurekaServerApplication.class, args);  
    }  

}

到此,相信大家對“如何實現(xiàn)spring cloud各個服務共享session登錄用戶信息”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI