您好,登錄后才能下訂單哦!
本篇內(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ù)學習!
免責聲明:本站發(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)容。