Spring Cloud Gateway入门

Spring Cloud Gateway入门

1、什么是Spring Cloud Gateway
Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系统中的网关,目标是替代Netflix ZUUL,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。

2、Spring Cloud Gateway入门案例
2.1 创建maven工程,pom.xml文件


    4.0.0
    com.lynch
    spring-cloud-gateway
    0.0.1-SNAPSHOT
    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.3.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8
        Finchley.RELEASE
    

    
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.cloud
            spring-cloud-starter-gateway
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



 

2.2 Spring Cloud Gateway主程序

package com.lynch;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;

/**
 * Spring Cloud Gateway主程序
 *
 * @author Lynch
 */
@SpringBootApplication
public class Application {
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                // basic proxy
                .route(r -> r.path("/baidu")
                .uri("http://baidu.com:80/"))
                .build();
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

 

2.3 编写application.yml文件

server:
  port: 8080
spring:
  application:
    name: spring-cloud-gateway
  cloud:
    gateway:
      routes:
      - id: xujin_route
        uri: http://www.xujin.org:80/
        predicates:
        - Path=/xujin
 
logging:
  level:
    org.springframework.cloud.gateway: TRACE
    org.springframework.http.server.reactive: DEBUG
    org.springframework.web.reactive: DEBUG
    reactor.ipc.netty: DEBUG

 

 

2.4 基本代理路由配置等同写法
Spring Cloud Gateway提供了两种配置路由规则的方法

第一:通过@Bean自定义RouteLocator

 

    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                // basic proxy
                .route(r -> r.path("/baidu")
                .uri("http://baidu.com:80/"))
                .build();
    }

 

 

第二:通过属于文件或者yml文件配置

 

spring:
  cloud:
    gateway:
      routes:
      - id: xujin_route
        uri: http://www.xujin.org:80/
        predicates:
        - Path=/xujin

 

 

2.5 运行测试
访问http://localhost:8080/baidu,路由转发到http://www.baidu.com
访问http://localhost:8080/xujin,路由转发到http://xujin.orgyml

你可能感兴趣的:(mvc,Springmvc,springcloud)