V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
haosamax
V2EX  ›  Java

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

  •  
  •   haosamax · 2020-10-26 18:06:16 +08:00 · 1407 次点击
    这是一个创建于 1270 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    目前搜集到想法的有两个:1 、利用配置中心刷新配置文件; 2 、看了下 SimpleRouteLocator 这个类,其子类 DiscoveryClientRouteLocator 重写了 locateRoutes 生成了默认路由,是不是可以写一个子类继承 SimpleRouteLocator 重写了 locateRoutes(路由存一张表,查询这张表)启动时加载。修改后,写个入库调用 doRefresh()
    请问大佬们 那个可行?
    
    第 1 条附言  ·  2020-10-27 10:07:28 +08:00
    老哥们,救救孩子啊~
    5 条回复    2020-10-27 16:52:35 +08:00
    THESDZ
        1
    THESDZ  
       2020-10-27 10:21:13 +08:00
    1.考虑接入注册中心
    2.实现其查询路由表的接口
    haosamax
        2
    haosamax  
    OP
       2020-10-27 14:05:24 +08:00
    @THESDZ 老哥,项请教下大家都是怎么做的
    nickchenyx
        3
    nickchenyx  
       2020-10-27 16:40:53 +08:00
    注册中心是直接的,可以动态的注册。特殊需求 SimpleRouteLocator 可以继承改写从 db 读取路由数据。我做了一个分流的功能,继承 ZuulFilter 实现路由的切换,按照百分比的形式将请求分别路由到两个集群,这个是为了做迁移做的。
    haosamax
        4
    haosamax  
    OP
       2020-10-27 16:51:40 +08:00
    注册中心有的,现在就是想是想动态路由功能,考虑是用现在的配置中心读配置 还是重写 locateRoutes()读 DB
    haosamax
        5
    haosamax  
    OP
       2020-10-27 16:52:35 +08:00
    @nickchenyx 注册中心有的,现在就是想实现动态路由功能,考虑是用现在的配置中心读配置 还是重写 locateRoutes()读 DB,在纠结...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2680 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:50 · PVG 23:50 · LAX 08:50 · JFK 11:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.