spring cloud gateway 2 入门教程

示例项目地址:https://github.com/14251104246/spring-cloud-gateway-demo/tree/cloud2.x-gateway

本示例项目使用的是spring gateway 2.0(基于spring cloud 2.0),而spring gateway1.x(貌似可不集成spring cloud)功能较为单一,不深入了解。spring gateway1.x示例项目地址:https://github.com/14251104246/spring-cloud-gateway-demo/tree/cloud1.x-gateway

依赖

  • pom文件添加如下配置
    • 注意:spring-beans依赖是必须添加的,不然会报java.lang.NoSuchFieldError: logger错误

    
        
            org.springframework.cloud
            spring-cloud-gateway
            1.0.2.RELEASE
            pom
            import
        
    



    
        org.springframework.cloud
        spring-cloud-starter-gateway
    
    
    
        org.springframework
        spring-beans
        5.0.5.RELEASE
        compile
    

配置

  • 下面配置了两个简单的uri路由配置
    • 第一个是路由到本机的9000端口上
    • 第二个路由到注册到配置中心的spring-cloud-producer服务中
      • 同时也会默认使用ribbon进行负载均衡,具体可看LoadBalancerClientFilter
    • 第三个是路由到百度网页上
# 网关配置
spring:
  cloud:
    gateway:
      routes:
        # 路由到本机的9000端口上
      - id: hello_route
        uri: http://localhost:9000
        predicates:
        - Path=/producer/**
        filters:
        - StripPrefix=1
        # 集成eureka注册中心的配置示例
      - id: hello_ribbon_route
        uri: lb://spring-cloud-producer
        predicates:
        - Path=/producerInEureka/**
        filters:
        - StripPrefix=1
        # 路由到百度页面
      - id: baidu_route
        uri: http://www.baidu.com
        predicates:
        - Path=/baidu/**
        filters:
        - StripPrefix=1
  • 如果你想关闭gateway,可以使用配置spring.cloud.gateway.enabled=false

测试

  • 有效性测试

    • 测试路由到百度页面:http://localhost:8888/baidu

    • 测试路由到路由到本机上的9000端口(示例子项目spring-cloud-producer):http://localhost:8888/producer/hello?name=1

    • 测试路由到(示例子项目spring-cloud-producer):http://localhost:8888/producerInEureka/hello?name=1

  • 压力测试

    • 结果如图
    image.png
    • 而zuul会在1000个线程并发请求下会出现错误(部分请求返回500
    • 结果如图
    image.png
    image.png

参考

  • http://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.0.0.RELEASE/single/spring-cloud-gateway.html
  • http://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/1.0.2.RELEASE/single/spring-cloud-gateway.html

你可能感兴趣的:(spring cloud gateway 2 入门教程)