Canary使用Zuul Gateway,Eureka,Ribbon和Feign发布

时间:2019-02-23 23:23:50

标签: netflix-eureka netflix-zuul netflix-feign netflix-ribbon canary-deployment

背景

我要部署同一应用程序的两个版本,并根据它们的版本(即Canary版本)将请求路由到这些应用程序。这两个版本的应用都将使用相同的应用名称注册到Eureka。

环境由Zuul网关,Eureka服务发现,用于负载平衡的Ribbon和用于内部应用程序间通信的Feign组成。除此之外,还有两个其他应用程序,App1和App2。当App1收到请求时,它将使用Feign调用App2。

This image显示了我要完成的流程。

我的想法

Eureka有一个metadataMap,可以在其中设置键/值对。部署App1或App2的Canary版本时,可以在此映射中设置“ canary = true”。

遵循此PR。一个请求将被发送到Zuul网关,在那里preFilter会检查X-Canary-Test头是否设置。接下来,自定义的Ribbon IRule将基于是否请求发布Canary版本从Eureka中选择实例的子集。

我也不确定Feign会如何工作。如果原始请求是针对Canary版本的,那么我希望对Canary版本进行所有后续调用(如果存在)。

问题

  • 这是否是通过Zuul完成路由的最佳方法 网关,如果是的话,如何获取服务器/实例的子集 来自尤里卡?
  • 如何将此方法应用于Feign客户并确保Canary版本试图调用已部署的其他Canary版本?

0 个答案:

没有答案