Spring Cloud Gateway 使用

簡介

Spring Cloud Gateway是Spring Cloud官方推出的網關框架,網關做爲流量入口,在微服務系統中有着十分重要的做用,經常使用功能包括:鑑權、路由轉發、熔斷、限流等。java

Spring Cloud Gateway是經過Spring WebFlux的HandlerMapping作爲底層支持來匹配到轉發路由,使用時不要引入SpringMVC,不然初始化時會出錯;Spring Cloud Gateway內置了不少Predicates工廠,這些 Predicates 工廠經過不一樣的 HTTP 請求參數來匹配,多個 Predicates 工廠能夠組合使用。spring

使用

一、添加依賴api

<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

二、配置(結合Eureka使用)app

server: port: 8066 spring: cloud: gateway: discovery: locator: enabled: true lower-case-service-id: true #設置serviceId小寫,默認大寫 routes: - id: user-server uri: lb://user-server #lb表示從註冊中心獲取服務
 predicates: - Path=/userapi/** # 若是請求地址知足/userapi/**,則轉發到user-server服務 filters: - StripPrefix=1 # 去除原請求地址中的userapi eureka: client: serviceUrl: defaultZone: http://localhost:8088/eureka/

三、集成Hystrix框架

依賴微服務

<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

配置spa

filters: - name: Hystrix args: name : default fallbackUri: 'forward:/dfallback' hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 6000

java端code

@RestController public class DHystrixController { @RequestMapping("/dfallback") public Map<String,String> dfallback(){ System.out.println("降級了。。。"); Map<String,String> map = new HashMap<String,String>(); map.put("rCode","-1"); map.put("rMsg","出錯了"); return map; } }
相關文章
相關標籤/搜索