gateway 微服務的入口-筆記

本文屬于b站圖靈課堂springcloud筆記系列。講的好還不要錢,值得推薦。

為什么需要API網關?

  • 客戶端多次請求不同的微服務,會增加客戶端代碼和配置的復雜性,維護成本比價高
  • 認證復雜,每個微服務可能存在不同的認證方式,客戶端去調用,要去適配不同的認證
  • 存在跨域的請求,調用鏈有一定的相對復雜性(防火墻 / 瀏覽器不友好的協議)
  • 難以重構,隨著項目的迭代,可能需要重新劃分微服務

為了解決上面的問題,引入了API網關

Spring Cloud Gateway 是什么?

This project provides an API Gateway built on top of the Spring Ecosystem, including: Spring 6, Spring Boot 3 and Project Reactor. Spring Cloud Gateway aims to provide a simple, yet effective way to route to APIs and provide cross cutting concerns to them such as: security, monitoring/metrics, and resiliency.

There are two distinct flavors of Spring Cloud Gateway:?Server?and?Proxy Exchange. Each flavor offers WebFlux and MVC compatibility.

  • The Server variant is a full-featured API gateway that can be standalone or embedded in a Spring Boot application.

  • The Proxy Exchange variant is exclusively for use in annotation based WebFlux or MVC applications and allows the use of a special?ProxyExchange?object as a parameter to a web handler method.

就是spring cloud 官方推出的第二代網關,是由 WebFlux + Netty + Reactor 實現的響應式的 API 網關。

特性:

  • Java 17

  • Spring Framework 6

  • Spring Boot 3

  • Dynamic routing

  • Route matching built into Spring Handler Mapping

  • Route matching on HTTP Request (Path, Method, Header, Host, etc…?)

  • Filters scoped to Matching Route

  • Filters can modify downstream HTTP Request and HTTP Response (Add/Remove Headers, Add/Remove Parameters, Rewrite Path, Set Path, Hystrix, etc…?)

  • API or configuration driven

  • Supports Spring Cloud?DiscoveryClient?for configuring Routes

其余詳細介紹請看GitHub - spring-cloud/spring-cloud-gateway: An API Gateway built on Spring Framework and Spring Boot providing routing and more.

?行業中通常把網關分為兩個大類:流量網關與業務網關,流量網關主要提供全局性的、與后端業務無關的策略配置,如NG,隨著應用架構模式從單體演進到現在的分布式微服務,業務網關也有了新的叫法 - 微服務網關,比如gateway.當然阿里也有開源的Higress實現了流量網關 + 微服務網關 + 安全網關高度集成的功能,這是一種發展趨勢。

微服務接入gateway

新建一個模塊,就是一個一個啟動類

核心配置,pom引入gateway依賴

<!-- gateway網關 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--nacos-discovery  注冊中心依賴--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- loadbalancer 負載均衡器依賴--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId></dependency>

配置文件:application.yml 如下

server:port: 18888spring:application:name: tlmall-gatewaycloud:nacos:
#      discovery:
#        server-addr: tlmall-nacos-server:8848config:server-addr: tlmall-nacos-server:8848file-extension: yml   #指定配置文件擴展名為yml#    gateway:
#      #設置路由:路由id、路由到微服務的uri、斷言
#      routes:
#        - id: order_route  #路由ID,全局唯一,建議配置服務名
#          uri: lb://tlmall-order  #lb 整合負載均衡器loadbalancer
#          predicates:
#            - Path=/order/**   # 斷言,路徑相匹配的進行路由
#
#        - id: storage_route   #路由ID,全局唯一,建議配置服務名
#          uri: lb://tlmall-storage  #lb 整合負載均衡器loadbalancer
#          predicates:
#            - Path=/storage/**   # 斷言,路徑相匹配的進行路由
#
#        - id: account_route   #路由ID,全局唯一,建議配置服務名
#          uri: lb://tlmall-account  #lb 整合負載均衡器loadbalancer
#          predicates:
#            - Path=/account/**   # 斷言,路徑相匹配的進行路由config:import:- optional:nacos:${spring.application.name}.yml- nacos:nacos-discovery.yml

注釋掉內容抽取到nacos,?Nacos配置中心創建一個dataId為tlmall-gateway.yml的配置,導入網關的配置.

測試:

啟動網關服務。

修改postman,改用網關地址下單:http://127.0.0.1:18888/order/create

修改頁面地址,order.html中訪問地址都替換為tmall-gateway:18888,測試下單是否成功

小結:gateway可以實現微服務中流量入口。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62871.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62871.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62871.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue2+element-ui實現多行行內表格編輯

效果圖展示 當在表格中點擊編輯按鈕時:點擊的行變成文本框且數據回顯可以點擊確定按鈕修改數據或者取消修改回退數據: 具體實現步驟 1. 行數據定義編輯標記 行數據定義編輯標記 當在組件中獲取到用于表格展示數據的方法中,針對每一行數據添加一個編輯標記 this.list.f…

安卓主板_MTK聯發科android主板方案

在當前智能設備的發展中&#xff0c;安卓主板的配置靈活性和性能優化顯得尤為重要。安卓主板的聯發科方案&#xff0c;在芯片上&#xff0c;搭載聯發科MTK6761、MT8766、MT6765、MT6762、MT8768、MT8390、MTK8370以及MT8788等型號&#xff0c;均基于64位的四核或八核架構設計。…

如何破解“不會寫作”的煩惱

在人生的諸多煩惱中&#xff0c;有一種煩惱或許不那么顯眼&#xff0c;卻常常如影隨形&#xff0c;讓人倍感困擾——那就是不會寫作的煩惱。這不僅僅是對那些以寫作為生的人而言&#xff0c;對于每一個需要在學習、工作或生活中以文字表達思想、情感的人來說&#xff0c;不會寫…

虛幻5描邊輪廓材質

很多游戲內都有這種描邊效果&#xff0c;挺實用也挺好看的&#xff0c;簡單復刻一下 效果演示&#xff1a; Linethickness可以控制輪廓線條的粗細 這樣連完&#xff0c;然后放到網格體細節的覆層材質上即可 可以自己更改粗細大小和顏色

修改docker源

在/etc/docker/daemon.json文件中寫入 { "registry-mirrors": [ "Welcome to nginx!" ] } 執行 systemctl daemon-reload systemctl restart docker docker info能夠看到源已經被替換 現在國內能夠使用的docker源經過測試只有Welcome to nginx! …

【JavaEE】網絡(2)

一、網絡編程套接字 1.1 基礎概念 【網絡編程】指網絡上的主機&#xff0c;通過不同的進程&#xff0c;以編程的方式實現網絡通信&#xff1b;當然&#xff0c;我們只要滿足進程不同就行&#xff0c;所以即便是同一個主機&#xff0c;只要是不同進程&#xff0c;基于網絡來傳…

RANS(Reynolds-Averaged Navier-Stokes) 湍流模型類型

RANS&#xff08;Reynolds-Averaged Navier-Stokes&#xff09; 湍流模型有多種不同的類型&#xff0c;除了標準的 kkk-ω 湍流模型&#xff0c;還有其他一些常用的湍流模型。RANS 模型的核心思想是對 Navier-Stokes 方程進行 雷諾平均&#xff0c;通過將流動場的瞬時變量分解為…

JS中this的值詳細講解以及面試指向練習

this 的值取決于它出現的上下文&#xff1a;函數、類或全局。 在函數內部&#xff0c;this 的值取決于函數如何被調用&#xff0c;this 是語言在函數體被執行時為你創建的綁定 對于典型的函數&#xff0c;this 的值是函數被訪問的對象。換句話說&#xff0c;如果函數調用的形…

2024年河南省高等職業教育技能大賽 大數據分析與應用賽項競賽方案

2024年河南省高等職業教育技能大賽 大數據分析與應用賽項競賽方案 一、賽項名稱 賽項名稱&#xff1a;大數據分析與應用 賽項編號&#xff1a;HN033 賽項組別&#xff1a;專業核心基本技能賽項 專業大類&#xff1a;電子與信息等 競賽形式&#xff1a;學生組&#xff08;團體賽…

vue繞過rules自定義編寫動態校驗

今天犯了個低級錯誤&#xff0c;雖然走了很多彎路&#xff0c;但這個過程還是值得記錄一下 例子如下&#xff0c;有兩個輸入框&#xff1a; 第一個是套餐選擇下拉框&#xff0c;可以下拉選擇三個內容 第二個要根據上面的套餐選擇三個選項來決定怎么顯示&#xff0c;使用v-if&…

數字化招聘系統如何幫助企業實現招聘效率翻倍提升?

眾所周知&#xff0c;傳統的招聘方式已經難以滿足現代企業對人才的需求&#xff0c;而數字化招聘系統的出現&#xff0c;為企業提供了全新的解決方案。通過數字化招聘系統&#xff0c;企業可以自動化處理繁瑣的招聘流程&#xff0c;快速篩選合適的候選人&#xff0c;從而大幅提…

短視頻矩陣源碼開發部署全流程解析

在當今的數字化時代&#xff0c;短視頻已成為人們娛樂、學習和社交的重要方式。短視頻矩陣系統的開發與部署&#xff0c;對于希望在這一領域脫穎而出的企業和個人而言&#xff0c;至關重要。本文將詳細闡述短視頻矩陣源碼的開發與部署流程&#xff0c;并附上部分源代碼示例&…

華為云云原生中間件DCS DMS 通過中國信通院與全球IPv6測試中心雙重能力檢測

近日&#xff0c;中國信息通信研究院&#xff08;以下簡稱“中國信通院”&#xff09;與全球IPv6測試中心相繼宣布&#xff0c;華為云的分布式緩存服務&#xff08;Distributed Cache Service&#xff0c;簡稱DCS&#xff09;和分布式消息服務&#xff08;Distributed Message …

關閉WPS在線功能資源和功能推薦

Kingsoft\WPS Office\12.1.0.18912\office6 選擇 【高級】 點擊 【確定】

Polars數據聚合與旋轉實戰教程

在這篇博文中&#xff0c;我們的目標是解決數據愛好者提出的一個常見問題&#xff1a;如何有效地從Polars DataFrame中創建匯總視圖&#xff0c;以便在不同時間段或類別之間輕松進行比較。我們將使用一個實際的數據集示例來探索實現這一目標的各種方法。 Polars簡介 Polars 是…

2024154讀書筆記|《帶著詩歌上街去》——我不長葉子,不開花,也不必要什么結果

2024154讀書筆記|《帶著詩歌上街去》——我不長葉子&#x1f33f;&#xff0c;不開花&#x1f33c;&#xff0c;也不必要什么結果 《帶著詩歌上街去》作者隔花人&#xff0c;作者很有巧思&#xff0c;在拍攝的照片上做詩&#xff0c;詩不是很有感覺&#xff0c;但是在墻上、風景…

建立基于TCP的客戶端和服務端

函數介紹&#xff1a; 1.socket() 作用&#xff1a;創建套接字 domain: AF_INET&#xff1a;IPv4 Internet 協議族。AF_INET6&#xff1a;IPv6 Internet 協議族。AF_UNIX&#xff1a;Unix 域協議族&#xff0c;用于在同一臺主機上的進程間通信。 type: SOCK_STREAM&#xff1a…

CNCF云原生生態版圖-分類指南(三)- 運行時

CNCF云原生生態版圖-分類指南&#xff08;三&#xff09;- 運行時 CNCF云原生生態版圖-分類指南三、運行時&#xff08;Runtime&#xff09;&#xff08;一&#xff09;云原生存儲&#xff08;Cloud Native Storage&#xff09;1. 是什么&#xff1f;2. 解決什么問題&#xff1…

機器學習經典算法

機器學習經典算法學習和分享。 k近鄰算法 線性回歸 梯度下降法 PCA主成分分析法 多項式回歸 邏輯回歸 支撐向量機SVM 決策樹 隨機森林 評價分類指標

MVC基礎——市場管理系統(三)Clean Architecture

文章目錄 項目地址五、Clean Architecture5.1 user cage driven5.1.1創建CoreBusiness 5.2 創建UseCases5.2.1 創建CategoriesUseCases1. 創建VeiwCategoriesUseCase獲取所有Cagegory 5.2.2. 實現ICategoryRepository接口3. 實現獲取所有Category的方法4. 實現獲取一個Cagegory…