SpringCloud 服務(wù)網(wǎng)關(guān)路由規(guī)則的坑及解決
一、場景簡述
筆者最近用到SpringCloud 服務(wù)網(wǎng)關(guān)的時(shí)候,進(jìn)行服務(wù)網(wǎng)關(guān)的路由測試,發(fā)現(xiàn)無法路由自己設(shè)置的規(guī)則,測試的時(shí)候如下
通過錯(cuò)誤排查發(fā)現(xiàn),原來是路由規(guī)則寫錯(cuò)了!
路由規(guī)則如下(錯(cuò)誤)
#端口 server: port: 8080 spring: #該配置文件中的配置,對(duì)應(yīng)的服務(wù)名稱是wc-gateway application: name: wc-gateway profiles: active: dev #服務(wù)網(wǎng)關(guān)配置 zuul: host: connect-timeout-millis: 60000 socket-timeout-millis: 60000 #路由規(guī)則 routes: api: path: /api/user/** serviceId: wc-client-user
二、解決方案
只需要將routes及以下的屬性左移,與host相等級(jí)別即可
修改后的路由規(guī)則
#端口 server: port: 8080 spring: #該配置文件中的配置,對(duì)應(yīng)的服務(wù)名稱是wc-gateway application: name: wc-gateway profiles: active: dev #服務(wù)網(wǎng)關(guān)配置 zuul: host: connect-timeout-millis: 60000 socket-timeout-millis: 60000 #路由規(guī)則 routes: api: path: /api/user/** serviceId: wc-client-user
好了,問題解決,我們重啟應(yīng)用測試,測試結(jié)果和預(yù)期一樣。
SpringCloud 進(jìn)階之Zuul(路由網(wǎng)關(guān))
1. Zuul(路由網(wǎng)關(guān))
Zuul 包含了對(duì)請(qǐng)求的路由和過濾兩個(gè)最主要的功能;
路由功能:負(fù)責(zé)將外部請(qǐng)求轉(zhuǎn)發(fā)到具體的微服務(wù)實(shí)例上,是實(shí)現(xiàn)外部訪問統(tǒng)一入口的基礎(chǔ);
過濾功能:負(fù)責(zé)對(duì)請(qǐng)求的處理過程進(jìn)行干預(yù),是實(shí)現(xiàn)請(qǐng)求校驗(yàn),服務(wù)聚合等功能的基礎(chǔ);
Zuul 服務(wù)最終還是會(huì)注冊(cè)進(jìn)Eureka;
1.1 路由基本配置
新建 microservicecloud-zuul-gateway-9527
// pom.xml <!-- zuul 路由網(wǎng)關(guān) --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> // application.yml server: port: 9527 spring: application: name: microservicecloud-zuul-gateway eureka: client: service-url: defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ instance: instance-id: gateway-9527.com prefer-ip-address: true info: app.name: noodles-microcloud company.name: www.google.com build.artifactId: $project.artifactId$ build.version: $project.version$ // hosts 修改: 127.0.0.1 myzuul.com // 主啟動(dòng)類 @SpringBootApplication @EnableZuulProxy public class Zuul_9527_StartSpringCloudApp { public static void main(String[] args) { SpringApplication.run(Zuul_9527_StartSpringCloudApp.class, args); } } // 啟動(dòng) // 三個(gè)Eureka集群 // microservicecloud-provider-dept-8001 // 路由 // 測試訪問: // 不用路由: http://localhost:8001/dept/get/1 // 使用路由: http://myzuul.com:9527/microservicecloud-dept/dept/get/1
1.2 Zuul 路由訪問映射規(guī)則
// microservicecloud-zuul-gateway-9527 // 修改 application.yml zuul: ignored-services: microservicecloud-dept # 將原有路由關(guān)閉 routes: prefix: /test # 設(shè)置統(tǒng)一公共前綴, 訪問地址:http://myzuul.com:9527/test/mydept/dept/get/1 mydept.serviceId: microservicecloud-dept mydept.path: /mydept/** // 修改之前,訪問地址: http://myzuul.com:9527/microservicecloud-dept/dept/get/1 // 修改之后,訪問地址: http://myzuul.com:9527/mydept/dept/get/1
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot項(xiàng)目啟動(dòng)報(bào)錯(cuò)踩坑實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于SpringBoot項(xiàng)目啟動(dòng)報(bào)錯(cuò)踩坑的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02IDEA2020.3.2版本自動(dòng)注釋類和方法注釋模板配置步驟詳解
這篇文章主要介紹了IDEA2020.3.2版本自動(dòng)注釋類和方法注釋模板配置步驟,本文給大家分享了我自己創(chuàng)建過程通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03兩個(gè)小例子輕松搞懂 java 中遞歸與尾遞歸的優(yōu)化操作
這篇文章主要介紹了兩個(gè)小例子輕松搞懂 java 中遞歸與尾遞歸的優(yōu)化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09SpringBoot整合WebSocket實(shí)現(xiàn)后端向前端主動(dòng)推送消息方式
這篇文章主要介紹了SpringBoot整合WebSocket實(shí)現(xiàn)后端向前端主動(dòng)推送消息方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10在SpringBoot中使用YourKit進(jìn)行性能調(diào)優(yōu)的教程詳解
在應(yīng)用程序的開發(fā)過程中,性能調(diào)優(yōu)是一個(gè)重要的環(huán)節(jié),在SpringBoot應(yīng)用程序中,我們可以使用YourKit來進(jìn)行性能調(diào)優(yōu),YourKit是一款非常強(qiáng)大的Java性能調(diào)優(yōu)工具,在本文中,我們將介紹如何在 SpringBoot應(yīng)用程序中使用YourKit進(jìn)行性能調(diào)優(yōu)2023-06-06JAVA8發(fā)送帶有Body的HTTP GET請(qǐng)求
本文主要介紹了JAVA8發(fā)送帶有Body的HTTP GET請(qǐng)求,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06springboot?log4j2.xml如何讀取application.yml中屬性值
這篇文章主要介紹了springboot?log4j2.xml如何讀取application.yml中屬性值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Mybatis Generator最完美配置文件詳解(完整版)
今天小編給大家整理了一篇關(guān)于Mybatis Generator最完美配置文件詳解教程,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-11-11