SpringCloud 服務(wù)網(wǎng)關(guān)路由規(guī)則的坑及解決
一、場景簡述
筆者最近用到SpringCloud 服務(wù)網(wǎng)關(guān)的時候,進行服務(wù)網(wǎng)關(guān)的路由測試,發(fā)現(xiàn)無法路由自己設(shè)置的規(guī)則,測試的時候如下
通過錯誤排查發(fā)現(xiàn),原來是路由規(guī)則寫錯了!
路由規(guī)則如下(錯誤)
#端口 server: port: 8080 spring: #該配置文件中的配置,對應(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相等級別即可
修改后的路由規(guī)則
#端口 server: port: 8080 spring: #該配置文件中的配置,對應(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 進階之Zuul(路由網(wǎng)關(guān))
1. Zuul(路由網(wǎng)關(guān))
Zuul 包含了對請求的路由和過濾兩個最主要的功能;
路由功能:負責(zé)將外部請求轉(zhuǎn)發(fā)到具體的微服務(wù)實例上,是實現(xiàn)外部訪問統(tǒng)一入口的基礎(chǔ);
過濾功能:負責(zé)對請求的處理過程進行干預(yù),是實現(xiàn)請求校驗,服務(wù)聚合等功能的基礎(chǔ);
Zuul 服務(wù)最終還是會注冊進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 // 主啟動類 @SpringBootApplication @EnableZuulProxy public class Zuul_9527_StartSpringCloudApp { public static void main(String[] args) { SpringApplication.run(Zuul_9527_StartSpringCloudApp.class, args); } } // 啟動 // 三個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
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
IDEA2020.3.2版本自動注釋類和方法注釋模板配置步驟詳解
這篇文章主要介紹了IDEA2020.3.2版本自動注釋類和方法注釋模板配置步驟,本文給大家分享了我自己創(chuàng)建過程通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03兩個小例子輕松搞懂 java 中遞歸與尾遞歸的優(yōu)化操作
這篇文章主要介紹了兩個小例子輕松搞懂 java 中遞歸與尾遞歸的優(yōu)化操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09SpringBoot整合WebSocket實現(xiàn)后端向前端主動推送消息方式
這篇文章主要介紹了SpringBoot整合WebSocket實現(xiàn)后端向前端主動推送消息方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10在SpringBoot中使用YourKit進行性能調(diào)優(yōu)的教程詳解
在應(yīng)用程序的開發(fā)過程中,性能調(diào)優(yōu)是一個重要的環(huán)節(jié),在SpringBoot應(yīng)用程序中,我們可以使用YourKit來進行性能調(diào)優(yōu),YourKit是一款非常強大的Java性能調(diào)優(yōu)工具,在本文中,我們將介紹如何在 SpringBoot應(yīng)用程序中使用YourKit進行性能調(diào)優(yōu)2023-06-06springboot?log4j2.xml如何讀取application.yml中屬性值
這篇文章主要介紹了springboot?log4j2.xml如何讀取application.yml中屬性值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Mybatis Generator最完美配置文件詳解(完整版)
今天小編給大家整理了一篇關(guān)于Mybatis Generator最完美配置文件詳解教程,非常不錯具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)吧2016-11-11