成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

SpringBoot開(kāi)發(fā)中分布式集群共享Session的示例分析-創(chuàng)新互聯(lián)

SpringBoot開(kāi)發(fā)中分布式集群共享Session的示例分析,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

壽縣網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,壽縣網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為壽縣超過(guò)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的壽縣做網(wǎng)站的公司定做!

前言

在分布式系統(tǒng)中,為了提升系統(tǒng)性能,通常會(huì)對(duì)單體項(xiàng)目進(jìn)行拆分,分解成多個(gè)基于功能的微服務(wù),如果有條件,可能還會(huì)對(duì)單個(gè)微服務(wù)進(jìn)行水平擴(kuò)展,保證服務(wù)高可用。

那么問(wèn)題來(lái)了,如果使用傳統(tǒng)管理 Session 的方式,我們會(huì)遇到什么樣的問(wèn)題?

案例

這里拿下單舉例,用戶(hù)小明在天貓上相中了一個(gè)的娃娃,覺(jué)得不錯(cuò),果斷購(gòu)買(mǎi),選尺寸,挑身高,然后確認(rèn)選擇,趕緊提交訂單,然后就跳轉(zhuǎn)到了登錄頁(yè)面!小明表示很郁悶,大寫(xiě)的問(wèn)號(hào)???

小明進(jìn)入娃娃頁(yè)面,此時(shí)請(qǐng)求通過(guò)代理服務(wù)發(fā)送到業(yè)務(wù)系統(tǒng)一。  小明選尺寸,挑身高,此操作并沒(méi)有對(duì)后端服務(wù)發(fā)送請(qǐng)求。  小明提交訂單,此時(shí)請(qǐng)求通過(guò)代理服務(wù)發(fā)送到業(yè)務(wù)系統(tǒng)二,然鵝,二系統(tǒng)此時(shí)并沒(méi)有查詢(xún)到小明的登錄信息,就被無(wú)情的跳轉(zhuǎn)到登錄頁(yè)了。

方案

HttpSession 默認(rèn)使用內(nèi)存來(lái)管理 Session,通常服務(wù)端把用戶(hù)信息存儲(chǔ)到各自的 Jvm 內(nèi)存中。所以小明下單的時(shí)候找不到登錄信息,那么我么何不把用戶(hù)信息集中存儲(chǔ)???

為了測(cè)試效果,這里我們搭建一個(gè)演示案例,項(xiàng)目涉及 SpringBoot、spring-session、redis、nginx 等相關(guān)組件。

pom.xml引入依賴(lài):

<dependency>

 <groupId>org.springframework.session</groupId>

 <artifactId>spring-session-data-redis</artifactId>

</dependency>

<dependency>

 <groupId>org.springframework.boot</groupId>

 <artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

配置 redis 參數(shù),軟件自行安裝:

## redis#session存儲(chǔ)類(lèi)型spring.session.store-type=redisspring.redis.database=0spring.redis.host=127.0.0.1spring.redis.port=6379spring.redis.password=123456spring.redis.pool.max-active=8spring.redis.pool.max-wait=-1spring.redis.pool.max-idle=8spring.redis.pool.min-idle=0spring.redis.timeout=3000

簡(jiǎn)單的用戶(hù)登錄實(shí)現(xiàn),省略部分代碼:

@RequestMapping(value="login",method=RequestMethod.POST)public Result login(String username,String password,HttpServletRequest request,HttpServletResponse response) throws Exception {  

SysUser user = userService.getUser(username);  

if(user==null) {    

return Result.error("用戶(hù)不存在");    }

else {  

 if(user.getPassword().equals(password)) {      

request.getSession().setAttribute("user", user);    

 return Result.ok();      }

else {        return Result.error("密碼錯(cuò)誤");

      }    }}

配置代理實(shí)現(xiàn),基于 Nginx:

server {    listen    80;  

server_name blog.52itstyle.vip;  

location / {      proxy_pass http://192.168.1.2:8080;  

 }  

location /cart {       proxy_pass http://192.168.1.3:8080$request_uri;

    }    location /order {    

proxy_pass http://192.168.1.4:8080$request_uri;    } }

配置成功后登錄系統(tǒng),在 redis 中查詢(xún)用戶(hù)信息:

127.0.0.1:6379> keys *1) "spring:session:expirations:1562577660000"2) "spring:session:sessions:1076c2bd-95b1-4f23-abd4-ab3780e32f6f"3) "spring:session:sessions:expires:1076c2bd-95b1-4f23-abd4-ab3780e32f6f"

看完上述內(nèi)容,你們掌握SpringBoot開(kāi)發(fā)中分布式集群共享Session的示例分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)頁(yè)題目:SpringBoot開(kāi)發(fā)中分布式集群共享Session的示例分析-創(chuàng)新互聯(lián)
URL分享:http://jinyejixie.com/article26/dsedjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)電子商務(wù)、品牌網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航定制網(wǎng)站、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
莱州市| 仙居县| 邮箱| 明溪县| 琼海市| 彰化市| 元阳县| 卢氏县| 修武县| 普陀区| 元朗区| 巴中市| 进贤县| 墨玉县| 韶山市| 屏东县| 浦城县| 普兰店市| 东丰县| 邻水| 肇东市| 石棉县| 岳普湖县| 麻城市| 黄陵县| 收藏| 上高县| 汝州市| 新泰市| 隆回县| 崇阳县| 双桥区| 福泉市| 潜江市| 信阳市| 阿拉善盟| 玉树县| 天全县| 渝北区| 嘉鱼县| 昌邑市|