【问题标题】:Customizing Zuul url endpoints for services in JHipster在 JHipster 中为服务自定义 Zuul url 端点
【发布时间】:2018-01-20 10:21:38
【问题描述】:

我有一组称为“client-Foo”的微服务,其中 Foo 是某些特定第三方客户端的名称。

按原样使用这些名称会创建一些非常难看的端点 url,所以我想将它们翻译成更好的层次结构形式。

我添加了一个自定义 PatternServiceRouteMapper,它采用 serviceId client-Foo 并将其转换为 url client/Foo

这给出了我想要的 url,但也破坏了服务映射,因为它将注册的 serviceId 更改为 client/Foo;因此,当 Zuul 进行路由时,它会失败,因为 没有 client/Foo 服务,它的 id 是 client-Foo

我无法对任何路径进行硬编码,因为该应用程序需要任意数量的不同“client-*”服务。

【问题讨论】:

    标签: jhipster netflix-zuul


    【解决方案1】:

    通过查看ZuulProxyAutoConfiguration,您可以看到可以替换一些bean 来实现您的目标,特别是您应该考虑提供自己的RouteLocator 接口实现或扩展DiscoveryClientRouteLocator 类。 您的服务实例还可以在 Eureka 服务器中注册,并使用您的 RouteLocator 可以使用的 metadataMap 中的其他数据。

    【讨论】:

      【解决方案2】:

      我会简单地添加一个配置定义的 Zuul 路由:

      zuul:
          routes:
              client-foo: /foo/**
      

      另外,我建议不要在 service-id 中使用破折号,因为它会混淆配置服务器 api(在 /config/foo-profile.yml 中,其中 profile 是您想要获取配置的 spring 配置文件)。

      【讨论】:

      • 在配置文件中手动配置每个路由是不行的。
      猜你喜欢
      • 1970-01-01
      • 2018-08-19
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多