[Zuul 动态路由] 请问如何实现不重启网关加载新增/修改的路由?

2020-10-26 18:06:16 +08:00
 haosamax

刚转型微服务,网关路由这块大家都是怎么做的动态加载的?

目前搜集到想法的有两个:1 、利用配置中心刷新配置文件; 2 、看了下 SimpleRouteLocator 这个类,其子类 DiscoveryClientRouteLocator 重写了 locateRoutes 生成了默认路由,是不是可以写一个子类继承 SimpleRouteLocator 重写了 locateRoutes(路由存一张表,查询这张表)启动时加载。修改后,写个入库调用 doRefresh()
请问大佬们 那个可行?
1412 次点击
所在节点    Java
5 条回复
THESDZ
2020-10-27 10:21:13 +08:00
1.考虑接入注册中心
2.实现其查询路由表的接口
haosamax
2020-10-27 14:05:24 +08:00
@THESDZ 老哥,项请教下大家都是怎么做的
nickchenyx
2020-10-27 16:40:53 +08:00
注册中心是直接的,可以动态的注册。特殊需求 SimpleRouteLocator 可以继承改写从 db 读取路由数据。我做了一个分流的功能,继承 ZuulFilter 实现路由的切换,按照百分比的形式将请求分别路由到两个集群,这个是为了做迁移做的。
haosamax
2020-10-27 16:51:40 +08:00
注册中心有的,现在就是想是想动态路由功能,考虑是用现在的配置中心读配置 还是重写 locateRoutes()读 DB
haosamax
2020-10-27 16:52:35 +08:00
@nickchenyx 注册中心有的,现在就是想实现动态路由功能,考虑是用现在的配置中心读配置 还是重写 locateRoutes()读 DB,在纠结...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/718777

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX