简述 Spring Cloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。 相关概念 Predicate(断言):路由组成的一部分,主要负责路由的匹配,来决定此次请求是否匹配路由,我们可以使用它匹配来自 HTTP 请求的任何内容,比如路径、参数或者 header 信息等等 Filter(过滤器):这个是 GatewayFilter 的实例,请求经过 Predicate 匹配路由之后执行 Filter,我们可以使用它修改请求和响应。 Spring Cloud Gateway 网关路由有两种配置方式: 通过配置文件配置 通过 @Bean 自定义 RouteLocator 去配置 这两种方式是等价的,建议使用配置文件配置。因为 Spring Cloud Gateway 使用响应式编程框架,学习曲线相对陡峭。 server: port: 8088eureka: client: serviceUrl: # 注册中心地址 defaultZone: http://localhost:8761/eurekaspring: application: name: test-gateway cloud: gateway: routes: - id: test1 uri: http://www. predicates: - Path=/fhadmin/** filters: - StripPrefix=1 各字段含义如下: 工作原理解决单点故障的问题在gateway前面使用nginx,用nginx负载均衡到不同的gateway服务上。 |
|