springcloud集成gateway

本篇文章只介紹gateway模塊的搭建步驟,并無gateway詳細介紹
gateway詳解請查看:SpringCloudGateway官方文檔詳解

前置處理

父模塊中已指定版本
在這里插入圖片描述
不知道如何選擇版本看這篇:
手把手教你梳理springcloud與springboot與springcloudalibaba的版本對應關系

一. Gateway模塊引入依賴

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId>
</dependency><!--客戶端負載均衡loadbalancer-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

注意:gateway無需引入spring-boot-starter-web,因為gateway內部集成了Netty服務器,啟動會報錯

二. 配置 bootstrap.yml 文件(nacos作為注冊中心)

這里是引入nacos,gateway具體配置可以放在nacos配置中心

spring:application:name: gatewayprofiles:active: devcloud:nacos:username: nacospassword: nacosdiscovery:# 命名空間namespace: 26dc328e-87e1-4ebb-9882-e46aa0cfbf0c# 同一個項目下的服務,要在同一個分組下,相互間才能通信group: dev# nacos服務端server-addr: 127.0.0.1:8848config:# nacos服務端server-addr: 127.0.0.1:8848# 分組group: dev# 命名空間namespace: 26dc328e-87e1-4ebb-9882-e46aa0cfbf0c# 配置文件類型file-extension: yaml# 讀取公用配置shared-configs:- data-id: common-dev.yamlgroup: devrefresh: true

三. nacos配置中心中對應gateway配置文件

server:port: 7000spring:cloud:# 動態路由gateway:discovery:locator:# 開啟從注冊中心動態創建路由的功能,利用微服務名進行路由enabled: true# 表示將請求路徑的服務名配置改成小寫 ,因為服務注冊的時候,向注冊中心注冊時將服務名轉成大寫的了lowerCaseServiceId: true# 若配置路由URI為lb,則注冊中心服務名稱不能和server.servlet.context-path名稱一致,否則contextPath會被改寫為空字符串;加上這一行配置可以解決問題filters:- StripPrefix=0# 路線routes:- id: admin # 路線ID,保持唯一# 表示使用負載均衡策略,admin是服務IDuri: lb://admin# uri: http://localhost:7001# predicates定義了路由的匹配條件,這里使用的是路徑匹配,所有以/admin/開頭的請求都會被路由到admin服務。predicates:- Path=/admin/**- id: memberuri: lb://memberpredicates:- Path=/member/**- id: netdiskuri: lb://netdiskpredicates:- Path=/netdisk/**- id: bloguri: lb://blogpredicates:- Path=/blog/**- id: thirdpartyuri: lb://thirdpartypredicates:- Path=/thirdparty/**# 處理跨域請求globalcors:corsConfigurations:'[/**]':allowedHeaders: "*" # 允許所有請求頭allowedOriginPatterns: "*" # 允許所有請求源#- "http://www.baidu.com" # 允許特定請求源allowCredentials: true # 允許發送CookieallowedMethods: # 允許所有請求方法- GET- POST- DELETE- PUT- OPTION

在這里插入圖片描述

四. 檢查gateway是否配置成功

還用這篇文章的測試接口 springcloud項目引入naocs2.x
在這里插入圖片描述
admin模塊有一個測試接口,直接調用的連接為

http://localhost:7001/admin/nacos/getCommonNacosConfig

在這里插入圖片描述
用gateway轉發的連接為
http://localhost:7000/admin/nacos/getCommonNacosConfig
在這里插入圖片描述

五. 問題匯總

1. context-path和application.name一致問題:

若配置路由URI為lb,則注冊中心服務名稱不能和server.servlet.context-path名稱一致,否則contextPath會被改寫為空字符串;

解決方案:

  1. context-path和application.name設置為不同
  2. filters:
    - StripPrefix=0
    在這里插入圖片描述
  3. filters[0]:
    - StripPrefix=PreserveHostHeader
    在這里插入圖片描述

參考文章:https://blog.csdn.net/weixin_43303455/article/details/122279447

2. Whitelabel Error Page This application has no configured error view, so you are seeing this as a fallback.

原因是缺少負載均衡依賴

解決方法:gateway模塊引入spring-cloud-starter-loadbalancer依賴

<!--客戶端負載均衡loadbalancer-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

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

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

相關文章

【Elasticsearch】文本分析Text analysis概述

文本分析概述 文本分析使 Elasticsearch 能夠執行全文搜索&#xff0c;搜索結果會返回所有相關的結果&#xff0c;而不僅僅是完全匹配的結果。 如果你搜索“Quick fox jumps”&#xff0c;你可能希望找到包含“A quick brown fox jumps over the lazy dog”的文檔&#xff0c…

建筑兔零基礎自學python記錄22|實戰人臉識別項目——視頻人臉識別(下)11

這次我們繼續解讀代碼&#xff0c;我們主要來看下面兩個部分&#xff1b; 至于人臉識別成功的要點我們在最后總結~ 具體代碼學習&#xff1a; #定義人臉名稱 def name():#預學習照片存放位置path M:/python/workspace/PythonProject/face/imagePaths[os.path.join(path,f) f…

二〇二四年終總結

寫在前面 簡單總結一下告訴自己&#xff0c;曾經活著 不必太糾結于當下&#xff0c;也不必太憂慮未來&#xff0c;當你經歷過一些事情的時候&#xff0c;眼前的風景已經和從前不一樣了。——村上春樹 原本應該 24 年年中的時候寫 23 年年終的總結&#xff0c;但是一直拖著&…

LabVIEW太陽能制冷監控系統

在全球能源需求日益增長的背景下&#xff0c;太陽能作為一種無限再生能源&#xff0c;被廣泛應用于各種能源系統中。本基于LabVIEW軟件和STM32F105控制器的太陽能制冷監控系統的設計與實現&#xff0c;提供一個高效、經濟的太陽能利用方案&#xff0c;以應對能源消耗的挑戰。 項…

Node.js中的npm包:從入門到實踐指南

目錄 一、npm的核心概念 二、npm核心命令與工作流 三、package.json深度解析 四、高級技巧與最佳實踐 五、常見問題解決方案 六、未來趨勢 在Node.js生態中&#xff0c;npm&#xff08;Node Package Manager&#xff09; 是開發者不可或缺的工具。它不僅是全球最大的開源軟…

AIGC圖生視頻保姆級教程

一、AI文生圖高階技巧 推薦工具 ? MidJourney&#xff08;藝術感最強&#xff09; ? DALLE 3&#xff08;與ChatGPT深度聯動&#xff09; ? Leonardo.ai&#xff08;精細化參數控制&#xff09; 核心策略 提示詞架構&#xff1a; [主體描述][環境氛圍][鏡頭語言][風格參數…

嵌入式EasyRTC實時通話支持海思hi3516cv610,編譯器arm-v01c02-linux-musleabi-gcc

EasyRTC已經完美支持海思hi3516cv610&#xff0c;編譯器arm-v01c02-linux-musleabi-gcc&#xff0c;總體SDK大小控制在680K以內&#xff08;預計還能壓縮100K上下&#xff09;&#xff1a; EasyRTC在hi3516cv610芯片上能雙向通話、發送文字以及二進制指令&#xff0c;總體運行…

力扣做題記錄 (二叉樹)

二叉樹 打算先來了解二叉樹基礎&#xff0c;都是簡單題&#xff0c;目的是熟悉代碼格式和解題基礎思路。 1、二叉樹最大深度 二叉樹最大深度 方法一、深度搜索 直接用原函數做遞歸&#xff0c;比較簡單 /*** Definition for a binary tree node.* struct TreeNode {* …

如何下載Qt和運行第一個程序。

Ubuntu24.04 下載比較容易&#xff0c;基本都是無腦操作。途中匯出現有個別package下載不成功的情況&#xff0c;重新下載即可。 文章目錄 下載qt運行qt第一個項目 下載qt 1.先找到官網&#xff0c;點擊Download。 2.然后選擇&#xff0c;community User 3.然后會跳轉到這個…

HCIA項目實踐--靜態路由的拓展配置

7.7 靜態路由的拓展配置 網絡中的兩個重要思想&#xff1a; &#xff08;1&#xff09; 實的不行來虛的&#xff1b; &#xff08;2&#xff09; 范圍太大&#xff0c;劃分范圍。&#xff08;分治&#xff09; 7.7.1 負載均衡 &#xff08;1&#xff09;定義 負載均衡是一種網…

Base64 PDF解析器

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Base64 PDF解析器</title><style>body {font-family: Arial, sans-serif;max-width: 800px;margin: 20px auto;padding: 20px;}.contain…

基于51單片機的的雞籠補光和恒溫系統的設計與實現(源程序+Protues仿真+電路圖+元件清單+器件手冊)

編號&#xff1a;71 基于51單片機的的雞籠補光和恒溫系統的設計與實現 功能描述&#xff1a; 本設計由89C52單片機液晶12864顯示模塊聲光報警電路溫濕度傳感器電路風扇電路LED照明電路光照檢測電路GSM電路DS1302時鐘電路 1.實現的功能 (1)采用DHT11溫濕傳感器、光敏電阻捕捉…

Spring——Spring開發實戰經驗(1)

摘要 文章主要介紹了 Swagger 作為 API 文檔生成和測試工具的功能&#xff0c;包括自動生成 API 文檔、提供可視化調試界面、促進前后端協作、支持 OpenAPI 規范等。同時&#xff0c;還提及了 Spring Boot 與 Swagger3 的實戰應用&#xff0c;以及 Spring 開發中其他相關技術內…

SAP-ABAP:SAP的Screen Layout Designer屏幕布局設計器詳解及示例

在SAP中&#xff0c;Screen Layout Designer&#xff08;屏幕布局設計器&#xff09;是用于設計和維護屏幕&#xff08;Dynpro&#xff09;布局的工具。通過Screen Layout Designer&#xff0c;您可以創建和修改屏幕元素&#xff08;如輸入字段、按鈕、文本、表格控件等&#x…

安全筑基,智能賦能:BeeWorks IM引領企業協同新紀元

在數字經濟高速發展的今天&#xff0c;企業通訊系統已從單純的信息傳遞工具演變為支撐業務創新的核心平臺。傳統通訊工具在安全性、智能化、協同性等方面的不足&#xff0c;嚴重制約著企業的數字化轉型進程。BeeWorks IM系統以其創新的技術架構和智能化功能&#xff0c;正在重新…

SpringBoot實戰:高效獲取視頻資源

文章目錄 前言技術實現SpringBoot項目構建產品選取配置數據采集 號外號外 前言 在短視頻行業高速發展的背景下&#xff0c;海量內容數據日益增長&#xff0c;每天都有新的視頻、評論、點贊、分享等數據涌現。如何高效、精準地獲取并處理這些龐大的數據&#xff0c;已成為各大平…

【IoTDB 線上小課 11】為什么 DeepSeek 要選擇開源?

新年新氣象&#xff0c;【IoTDB 視頻小課】第十一期全新來臨&#xff01; 關于 IoTDB&#xff0c;關于物聯網&#xff0c;關于時序數據庫&#xff0c;關于開源... 一個問題重點&#xff0c;3-5 分鐘&#xff0c;我們講給你聽&#xff1a; 開源“加成”再次展現&#xff01; 現在…

宏任務和微任務

在前端開發中&#xff0c;**宏任務&#xff08;Macro Task&#xff09;**和**微任務&#xff08;Micro Task&#xff09;**是 JavaScript 事件循環&#xff08;Event Loop&#xff09;中的兩個重要概念。它們決定了異步代碼的執行順序。 --- ### 1. **事件循環&#xff08;Ev…

人工智能 - 機器學習、深度學習、強化學習是人工智能領域的理論基礎和方法論

機器學習、深度學習、強化學習是人工智能領域的三大核心方向,各自具有獨特的理論基礎和方法論。以下是它們的核心理論知識總結: 一、機器學習(Machine Learning, ML) 1. 基礎概念 目標:通過數據驅動的方式,讓機器從經驗中學習規律,完成預測、分類或決策任務。 核心范式…

java處理pgsql的text[]類型數據問題

背景 公司要求使用磐維數據庫&#xff0c;于是去了解了這個是基于PostgreSQL構建的&#xff0c;在使用時有場景一條圖片數據中可以投放到不同的頁面&#xff0c;由于簡化設計就放在數組中&#xff0c;于是使用了text[]類型存儲&#xff1b;表結構 #這是一個簡化版表結構&…