SpringCloudGateway动态路由

142 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

关于动态路由,是各类业务场景中的基础功能,通过动态化配置API网关的路由参数,可以实现在不重启服务的情况下,API路由规则的动态配置、实时生效

静态路由

先说一下静态路由,所谓静态路由,就是指API网关启动前,通过配置文件或者代码的方式,静态的配置好API之间的路由关系,此后不需要二次维护,大多数的内部API网关适用于这种方式。

但是如果项目需要动态添加其他的服务,那么这个静态路由就必须重新,重启,才能生效,这样就显得非常局限

原生动态路由

动态路由,就是在API服务网关启动之后,路由关系可取决于外部环境的变化而变化,比如通过注册中心的不同的微服务、数据库中的映射路由关系等,动态的改变路由关系。

Spring Cloud原生支持服务自动发现并且注册到路由之中,通过在application.properties中设置

spring.cloud.gateway.discovery.locator.enabled=true

同时确保 DiscoveryClient 的实体 (Netflix Eureka, Consul, Nacos或 Zookeeper) 已经生效,即可完成服务的自动发现及注册。