springcloud2学习笔记-gateway基于注册发现的默认路由配置

环境

  • spring cloud版本:Finchley.SR2
  • spring boot版本:2.0.6.RELEASE

介绍

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

  • 架构图如下
    springcloud2学习笔记-gateway基于注册发现的默认路由配置

gateway的特性

  • 基于 Spring Framework 5,Project Reactor 和 Spring Boot 2.0
  • 动态路由
  • Predicates 和 Filters 作用于特定路由
  • 集成 Hystrix 断路器
  • 集成 Spring Cloud DiscoveryClient
  • 易于编写的 Predicates 和 Filters
  • 限流
  • 路径重写

基于注册发现的默认路由配置

springcloud2学习笔记-gateway基于注册发现的默认路由配置

  • 服务提供者配置
server:
  port: 9051
spring:
  application:
    name: mybatisdemo
  cloud:
    consul:
      host: localhost
      port: 8500

  • gateway配置
server:
  port: 7777

logging:
  level:
    org.springframework.cloud.gateway: trace
    org.springframework.http.server.reactive: debug
    org.springframework.web.reactive: debug
    reactor.ipc.netty: debug
spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true # 开启注册发现服务动态路由
    # 注册中心配置
    consul:
      host: localhost
      port: 8500
  application:
    name: server-gateway

路由规则说明:http://gateway-host:gateway-port/serviceId/**,如果你注册中心选择的是consul,serviceId的大小写和你的服务的保持一致,这个可能和你选用的注册发现中心有关系。

测试效果

  • 服务提供者运行截图
    springcloud2学习笔记-gateway基于注册发现的默认路由配置
  • gateway网关运行截图
    springcloud2学习笔记-gateway基于注册发现的默认路由配置

源码地址