Spring Cloud:如何管理Zuul对其他服务的请求?

时间:2019-05-02 14:00:58

标签: spring-cloud netflix-zuul

实际上,我想了解在几个微服务之间管理请求的正确方法,其中之一就是Zuul:

  1. 我有Zuul-app,它是微服务之前的代理。 Zuul从端口7777开始,并声明了/api/service1/get/api/service2/get之类的API。在每项服务中,我都有localhost:7777/api/service1/get可用的echo端点,并且运行良好。
  2. 但是这些回波端点可以直接从相应的服务获得。这样,我可以向Postman发出service1/get/service2/get
  3. 的请求

据我了解,任何人都可以通过Zuul或直接从这些服务中调用这些服务。那么Zuul在这种情况下有什么区别和真正的价值(代替Zuul可以授权用户,我们可以说是代理微服务)

那么将Zuul用于微服务的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您的问题好像是在问两件事。目的是什么以及如何使用它。要回答第一个。

其目的是在您拥有的所有其他服务之前提供该服务。就像系统的前门一样。 其余服务应隐藏在代理服务之后的外部世界中。

目的是将所有服务从一个地方路由,因此netflix-zuul可以拦截请求,操纵,验证,路由...

您可以集成服务发现(netflix-eureka),以便在此处注册您的服务,并且无需处理服务的URL,可以通过定义的路径和注册的服务ID来访问它们。

您可以在整个系统中集成负载平衡(netflix-ribbon)。

您可以通过添加延迟容忍度和容错逻辑(netflix-hystrix)来控制服务之间的交互。因此,当发生错误时,您可以提供后备选项。

依此类推...