• spring cloud gateway 入门


    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链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。

    spring cloud gateway 案例

    新建一个spring boot项目,添加spring cloud相关依赖的jar包

    
        
            ch18-1
            cn.springcloud.book
            1.0-SNAPSHOT
        
    
        4.0.0
    
        ch18-1-gateway
        jar
    
        ch18-1-gateway
        http://springcloud.cn
    
        
            Finchley.M8
        
    
        
            
                
                    org.springframework.cloud
                    spring-cloud-dependencies
                    ${spring-cloud.version}
                    pom
                    import
                
            
        
    
        
            
                org.springframework.boot
                spring-boot-starter-actuator
            
            
                org.springframework.cloud
                spring-cloud-starter-gateway
            
        
        
            
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                
            
        
    
        
            
                spring-snapshots
                Spring Snapshots
                https://repo.spring.io/snapshot
                
                    true
                
            
            
                spring-milestones
                Spring Milestones
                https://repo.spring.io/milestone
                
                    false
                
            
        
    
        
            
                spring-snapshots
                Spring Snapshots
                https://repo.spring.io/snapshot
                
                    true
                
            
            
                spring-milestones
                Spring Milestones
                https://repo.spring.io/milestone
                
                    false
                
            
        
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91

    spring cloud gateway 网关路由方式

    新的gateway网关路由配置有两种方式:

    1.通过@Bean自定义RouteLocator,在启动主类Application中配置

    2.在配置文件yml中配置

    这两种方式都可以实现网关路由是等价的,但是通常项目开发中会使用配置文件yml方式。

    启动类Application配置网关路由:

    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;
    
    @SpringBootApplication
    public class SpringCloudGatewayApplication {
    
        @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(SpringCloudGatewayApplication.class, args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    配置文件application.yml配置网关路由:

    server:
      port: 8080
    spring:
      application:
        name: spring-cloud-gateway
    
    spring:
      cloud:
        gateway:
          routes:
          - id: 163_route
            uri: http://www.163.com/
            predicates:
            - Path=/163
    
    logging:
      level:
        org.springframework.cloud.gateway: TRACE
        org.springframework.http.server.reactive: DEBUG
        org.springframework.web.reactive: DEBUG
        reactor.ipc.netty: DEBUG
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    运行测试

    配置好了,启动服务

    访问 http://localhost:8080/baidu,路由转发到 http://www.baidu.com
    访问http://localhost:8080/163, 路由转发到 http://www.163.com

  • 相关阅读:
    使用富斯i6遥控器设置6种飞行模式
    【微信小程序】button和image组件的基本使用
    如何打war包,并用war包更新服务器版本
    《QT实用小工具·十三》FlatUI辅助类之各种炫酷的控件集合
    实战纪实 | 某米企业src未授权访问
    瞬态抑制二极管TVS的核心参数?|深圳比创达电子EMC(下)
    如何在3GPP网站找到自己需要的技术标准/报告
    (4)点云数据处理学习——其它官网例子
    设计模式-行为型模式-责任链模式
    【面试必刷101】动态规划1
  • 原文地址:https://blog.csdn.net/m0_67393342/article/details/126496835