Springcloud教程——GateWay閘道器元件
目錄
概述
GateWay是一個閘道器應用,閘道器的作用就是過濾請求,將請求轉發到對應的微服務上,這麼做的好處是讓請求不直接訪問微服務而是通過閘道器,這樣就可以對請求進行管理,隱藏微服務的ip和埠增強微服務的隱蔽性。最要的兩個作用就是過濾和請求。
入門案例
1.由於GateWay本身一個微服務需要註冊到Eureka當中,因此第一步需要建立一份maven工程,引入GateWay依賴和eureka客戶端依賴
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
</project>
2.gateway工程也是微服務工程因此啟動項的依賴與其他微服務工程一樣,需要新增eureka發現註解和springboot啟動註解
@EnableDiscoveryClient
@SpringBootApplication
public class GateWayApplication {
public static void main(String[] args) {
SpringApplication.run(GateWayApplication.class,args);
}
}
路由配置
predicates:配置路由對映的路徑。
spring:
application:
#eureka中閘道器服務的名稱
name: gateway-server
cloud:
gateway:
routes:
#路由的id
- id: user-server-route
#使用服務名稱替代地址,eureka中不止一個服務
uri: lb://springcloud-server
#配置請求轉發的
#uri: http://127.0.0.1:8082
#路由斷言,配置訪問的路徑
predicates:
- Path=/testserver/**
過濾器配置
Filter:prefixpath配置訪問的字首,訪問的路徑predicates的路徑可以設定成./**,來表示需要對映的路徑,如果predicates設定的路徑名稱比較全如/server/user/**,那麼可以設定去除字首stripprefix,設定數值,1代表去除一個字首,原來的/server/user/**訪問路徑可以改為/user/**
filters:
#配置訪問的路勁的字首
#- PrefixPath=/testserver
#去除字首1個字首
- StripPrefix=1
自定義過濾器
全域性過濾器
不需要再yml中配置,實現GlobalFilter去設定
區域性過濾器
作用:針對某個路由進行設定過濾器,編寫過濾類繼承MyParamGatewayFilterFactory類
GateWay中hystrix設定
gateway預設整合了Hystrix,配置值是預設的,可在yml中修改配置
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 5000
GateWay中設定Ribbon
GateWay中整合了ribbon實現負載均衡,可在yml修改配置
ribbon:
ConnectTimeout: 1000
ReadTimeout: 2000
MaxAutoRetries: 0
MaxAutoRetriesNextServer: 0
GateWay中跨域問題
跨域:前端訪問的地址與當前伺服器的地址不一致則會出現請求不到的跨域問題。在GateWay中可以設定其他伺服器可通過訪問的地址。
gateway:
globalcors:
cors-configurations:
'[/**]':
allowedOrigins:
- "http://127.1.1:9909"
allowedMethods:
- GET
'[/**]':所有當問閘道器伺服器的地址
allowedOrigins:允許跨域訪問的地址由那些,可填寫多個。
allowedMethods:允許跨域訪問的請求型別有那些,可填寫多個。
GateWay的高可用
GateWay既然也是為微服務,那就可以啟動多個GateWay作為叢集,內部網路訪問gateway沒用問題,要實現外部請求的負載均衡可以使用nginx作為負載均衡代理伺服器,從nginx中轉發請求到GateWay當中,GateWay收到請求查詢Eureka中的服務進行呼叫。
GateWay與Feign的區別
GateWay:接收外部請求轉發給其他微服務。
Feign:將微服務中的介面暴露,讓其他微服務呼叫,主要用在微服務直接的呼叫。
相關文章
- SpringCloud 微服務閘道器 Gateway 元件SpringGCCloud微服務Gateway元件
- SpringCloud(四)GateWay閘道器SpringGCCloudGateway
- SpringCloud(五)GateWay閘道器SpringGCCloudGateway
- SpringCloud GateWay 使用 閘道器路由SpringGCCloudGateway路由
- springcloud服務閘道器-gatewaySpringGCCloudGateway
- ⑥SpringCloud 實戰:引入gateway元件,開啟閘道器路由功能SpringGCCloudGateway元件路由
- 五、SpringCloud alibaba 之 閘道器GateWaySpringGCCloudGateway
- 閘道器GatewayGateway
- gateway 閘道器Gateway
- SpringCloud系列之閘道器(Gateway)應用篇SpringGCCloudGateway
- SpringCloud系列之API閘道器(Gateway)服務ZuulSpringGCCloudAPIGatewayZuul
- SpringCloud-Gateway 閘道器路由、斷言、過濾SpringGCCloudGateway路由
- 使用springcloud gateway搭建閘道器(分流,限流,熔斷)SpringGCCloudGateway
- Gateway(閘道器)的概述Gateway
- SpringCloud Alibaba實戰(11:引入服務閘道器Gateway)SpringGCCloudGateway
- 阿里springcloud alibaba 閘道器gateway + nacos 遇到503錯誤阿里SpringGCCloudGateway
- 並行閘道器 Parallel Gateway並行ParallelGateway
- transparent gateway 透明閘道器配置Gateway
- SpringCloud Gateway微服務閘道器實戰與原始碼分析-上SpringGCCloudGateway微服務原始碼
- SpringCloud Alibaba(二) - Sentinel,整合OpenFeign,GateWay服務閘道器SpringGCCloudGateway
- ⑤SpringCloud 實戰:引入Zuul元件,開啟閘道器路由SpringGCCloudZuul元件路由
- 【SpringCloud技術專題】「Gateway閘道器係列」(3)微服務閘道器服務的Gateway全流程開發實踐指南(2.2.X)SpringGCCloudGateway微服務
- 《springcloud 二》微服務動態閘道器,閘道器叢集SpringGCCloud微服務
- SpringCloud微服務專案實戰 - API閘道器Gateway詳解實現SpringGCCloud微服務APIGateway
- sbc(六) Zuul GateWay 閘道器應用ZuulGateway
- 微服務閘道器 Spring Cloud Gateway微服務SpringCloudGateway
- Spring Cloud Gateway 閘道器嚐鮮SpringCloudGateway
- 微服務(七)Gateway服務閘道器微服務Gateway
- dubbo-gateway 高效能dubbo閘道器Gateway
- 拆輪子:閘道器GOKU-API-GatewayGoAPIGateway
- 微服務閘道器Gateway實踐總結微服務Gateway
- Gateway服務閘道器 (入門到使用)Gateway
- 09.Gateway新一代閘道器Gateway
- SpringCloud之路由閘道器zuul(五)SpringGCCloud路由Zuul
- 構建SpringCloud閘道器服務SpringGCCloud
- springcloud(十):服務閘道器zuulSpringGCCloudZuul
- 微服務實戰(八)整合Sentinel閘道器服務限流功能 SpringCloud GateWay + Sentinel + Nacos微服務SpringGCCloudGateway
- 微服務閘道器實戰——Spring Cloud Gateway微服務SpringCloudGateway