You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.4 KiB

SpringCloud - Gateway

1. 基础介绍

  • SpringCloud Gateway 的核心概念

    • SpringCloud Gateway 是 Spring 官方最新推出的一款基于 SpringFramework 5, Project Reactor 和SpringBoot 2之上开发的网关
    • 它与第一代网关 Zuu 不同的是: gateway 是异步非阻塞的(netty + webflux 实现), zuul是同步阻塞请求的
    • Gateway 三大组成部分
      • Route 路由(ID + 目标URL) - Predicate 断言 - Filter 过滤器
  • SpringCloud Gateway 的工作模型

    • SpringCloud Gateway 工作模型图示及解读
      • 请求发送到网关,经由分发器将请求匹配到相应的 HandlerMapping
      • 请求和处理器之间有一个映射,路由到网关处理程序,即 Web Handler
      • 执行特定的请求过滤器链 (Filters Proxy Filter)
      • 最终到达代理的微服务 (Proxied Service)

2. 谓词 Predicate 的原理与应用

  • 参考: [PredicateTest.java]

3. 集成 Nacos 实现动态路由配置

  • 静态路由配置
    • 静态路由配置写在配置文件中(yml或者 properties 文件中),端点是:spring.cloud.gateway
    • 缺点非常明显,每次改动都需要网关模块重新部署

4. 注册网关事件监听器

  • 参考: [DynamicRouteServiceImpl.java] | [DynamicRouteServiceImplByNacos.java]

  • 验证网关监听器的可用性 修改看是否可以生效, 已经测试成功


5. 解读 SpringCloud Gateway Filter