GetWay的簡單使用


Gateway 是 Spring Cloud 新推出的網關框架,該項目基於 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技術,底層使用了高性能的通信框架Netty。
網關的作用:在沒有API網關作為統一出口的情況下,需要調用方自己組合各種服務,而且容易讓調用方感知后端各種服務的存在,加入網關后,客戶端調用服務需要通過網關來進行,並且網關可以處理路由,安全,限流,緩存,日志,監控,重試,熔斷等事務,使業務開發更純凈。
一些概念:
Route(路由):這是網關的基本構建塊。它由一個 ID,一個目標 URI,一組斷言和一組過濾器定義。如果斷言為真,則路由匹配。
Predicate(斷言):這是一個 Java 8 的 Predicate。我們可以使用它來匹配來自 HTTP 請求的任何內容。
Filter(過濾器):這是org.springframework.cloud.gateway.filter.GatewayFilter的實例,我們可以使用它修改請求和響應。
使用:
1.導入依賴:
<!--gateway-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
注:sprint-boot-starter-web這個依賴是不能引入,否則getway不能使用。
2.啟動類:
@SpringBootApplication
@EnableEurekaClient
public class GetwayMain {
    public static void main(String[] args) {
        SpringApplication.run(GetwayMain.class,args);
    }
}
3.配置路由,getway當中配置路由有兩種方式,第一種是通過yml配置文件的方式配置路由,第二種是通過配置類的方式來配置路由
使用yml:
spring:
  application:
    name: cloud-getway
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
        - id: payment_routh #id
          #uri: http://localhost:8001 #匹配的路由地址
          uri: lb://cloud-payment-service
          predicates:
            - Path=/payment/get/** #斷言路徑匹配進行路由
        - id: payment_routh
          #uri: http://localhost:8001
          uri: lb://cloud-payment-service
          predicates:
            - Path=/payment/lb/**
使用配置類:
@Configuration
public class GetwayConfig {
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder){
        RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
        routes.route("com.74120",r->r.path("/guonei").uri("http://news.baidu.com/guonei")).build();
        return  routes.build();
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM