美文网首页
Spring Cloud Gateway-最佳实践-单个路由配置

Spring Cloud Gateway-最佳实践-单个路由配置

作者: 侯文_ad82 | 来源:发表于2019-10-29 17:16 被阅读0次

    1.背景

            我们的应用场景是,网关的路由断言配置都是由客户自己定义,由于前期配置规则约束较少。这样就会由于某个用户配置的错误路由,影响到全局的配置,导致整个网关启动错误。

            Gateway版本:2.2.0.BUILD-SNAPSHOT

    2.分析

            通过查看源码,发现网关加载路由配置信息代码如下:

            在类org.springframework.cloud.gateway.route.RouteDefinitionRouteLocator中,加载路由方法:

             某个路由信息转换加载:

          发现,单个路由信息加载无任何处理异常,如果出现异常将直接影响到全局加载。

    3.思考及解决方案

    其实这种设计并不一定有问题,只是不适合于我们的应用场景。那么,最暴力的解决办法,修改源码,在convertToRoute方法内进行异常处理,不进行抛出。当然,这样做的副作用会有好多,关于版本升级,后续的维护性等等都是问题。(一般不建议直接修改源码来解决问题)

    那么我们再想其他办法。我们在配置加载前,把类进行重写。我们可以通过springAOP,将getRoutes()方法重写,在convertToRoute出现异常时,不抛出。

    4.代码示例

    相关文章

      网友评论

          本文标题:Spring Cloud Gateway-最佳实践-单个路由配置

          本文链接:https://www.haomeiwen.com/subject/veugvctx.html