1. 程式人生 > >暢購商城(八):微服務閘道器和JWT令牌

暢購商城(八):微服務閘道器和JWT令牌

> 好好學習,天天向上 >
> 本文已收錄至我的Github倉庫**DayDayUP**:github.com/RobodLee/DayDayUP,歡迎Star,更多文章請前往:[目錄導航](https://github.com/RobodLee/DayDayUP) + [暢購商城(一):環境搭建](https://blog.csdn.net/weixin_43461520/article/details/107095045) + [暢購商城(二):分散式檔案系統FastDFS](https://blog.csdn.net/weixin_43461520/article/details/107137843) + [暢購商城(三):商品管理](https://blog.csdn.net/weixin_43461520/article/details/107243543) + [暢購商城(四):Lua、OpenResty、Canal實現廣告快取與同步](https://blog.csdn.net/weixin_43461520/article/details/107348436) + [暢購商城(五):Elasticsearch實現商品搜尋](https://blog.csdn.net/weixin_43461520/article/details/107466286) + [暢購商城(六):商品搜尋](https://blog.csdn.net/weixin_43461520/article/details/107579868) + [暢購商城(七):Thymeleaf實現靜態頁](https://blog.csdn.net/weixin_43461520/article/details/107728072) + [暢購商城(八):微服務閘道器和JWT令牌](https://blog.csdn.net/weixin_43461520/article/details/107817503) ## 微服務閘道器 ### 介紹 閘道器是介於使用者和微服務之前的中間層。說白了,閘道器就像是小區的保安,無論你想到小區的哪一戶人家去,你都得先通過小區的大門。所以,小區的保安可以做人員統計,還可以控制某個時間段進去小區的人數,限制進入小區的資格等。保證了小區業主們的安全。微服務網關同樣起著這些作用。 ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9naXRlZS5jb20vUm9ib2RMZWUvaW1hZ2Vfc3RvcmUvcmF3L21hc3Rlci9KYXZhLyVFNyU5NSU4NSVFOCVCNCVBRCVFNSU5NSU4NiVFNSU5RiU4RSVFNSU4NSVBQiVFRiVCQyU5QSVFNSVCRSVBRSVFNiU5QyU4RCVFNSU4QSVBMSVFNyVCRCU5MSVFNSU4NSVCMyVFNSU5MiU4Q0pXVCVFNCVCQiVBNCVFNyU4OSU4Qy8lRTclQkQlOTElRTUlODUlQjMlRTclQTQlQkElRTYlODQlOEYucG5n?x-oss-process=image/format,png) ### 為什麼要有微服務閘道器 不同的微服務一般會有不同的網路地址,而外部客戶端可能需要呼叫多個服務的接口才能完成一個業務需求,如果讓客戶端直接與各個微服務通訊,會有以下的問題: + 客戶端會多次請求不同的微服務,增加了客戶端的複雜性 + 存在跨域請求,在一定場景下處理相對複雜 + 認證複雜,每個服務都需要獨立認證 + 難以重構,隨著專案的迭代,可能需要重新劃分微服務。例如,可能將多個服務合併成一個或者將一個服務拆分成多個。如果客戶端直接與微服務通訊,那麼重構將會很難實施 + 某些微服務可能使用了防火牆 / 瀏覽器不友好的協議,直接訪問會有一定的困難 那麼有了微服務閘道器之後,這些問題就可以得到解決。它有著以下優點。 + 安全 ,只有網關係統對外進行暴露,微服務可以隱藏在內網,通過防火牆保護。 + 易於監控。可以在閘道器收集監控資料並將其推送到外部系統進行分析。 + 易於認證。可以在閘道器上進行認證,然後再將請求轉發到後端的微服務,而無須在每個微服務中進行認證。 + 減少了客戶端與各個微服務之間的互動次數 + 易於統一授權。 總結:**微服務閘道器就是一個系統,通過暴露該微服務網關係統,方便我們進行相關的鑑權,安全控制,日誌統一處理,易於監控的相關功能**。 ## 閘道器微服務 ### 微服務搭建 一個專案中可能會用到不止一個閘道器,所以我們將閘道器微服務放在changgou-gateway父工程下。現在我們建立一個名為changou-gateway-web的微服務。有些依賴是所有閘道器微服務都要用到的,所以將這些依賴放在父工程下: ```xml ``` 啟動類和配置檔案不能少,啟動類就不貼了,配置檔案如下