【问题标题】:Zuul API GW as a docker container vs. as part of a Java Spring application?Zuul API GW 作为 docker 容器还是作为 Java Spring 应用程序的一部分?
【发布时间】:2019-03-23 05:17:03
【问题描述】:

我将我的单体应用程序分解为一组用 Java Spring 编写的微服务。作为我的微服务架构的一部分,我正在实现一些基本模式,例如服务发现、API 网关等。 我使用“@EnableZuulProxy”将我的 API 网关实现为 Spring 引导应用程序,它是 Spring 云项目的一部分。 我的问题是:

  1. 我的实现和使用 Zuul docker 有什么区别 现成的图片?
  2. 每种方法的优缺点是什么?

【问题讨论】:

  • 什么是“Zuul docker 容器”?
  • 我的意思是 Zuul docker 图像(在问题中修复了它)。您可以在 docker hub (hub.docker.com/r/netflixoss/zuul) 中找到该图像

标签: java spring-cloud netflix-zuul spring-cloud-netflix


【解决方案1】:

这两种解决方案都支持在应用程序实例之间进行平衡。

主要区别是:

  • Zuul API GW

    • 无法自动启动新实例(您应该手动扩展)
    • 无需容器化您的应用程序
  • Docker 容器编排器(Docker Swarm、Kubernetes ...)能够自动扩展(在需要时启动新实例)

【讨论】:

    【解决方案2】:

    如果您将 Zuul API Gateway 用作 jar 或 Docker 容器,肯定没有区别。在这两种情况下,它都扮演着 API 网关的角色。

    在 Ops(来自 DevOps)、构建、检查、销毁和发布的方式、控制实例数量等方面存在差异。

    如果您选择 Docker 作为基础架构的主要部分,并使用 Docker Swarm、Mesos & Marathon、Kubernetes、Nomad 等进行管理,那么将您的 API Gateway 包装到 Docker。

    如果您手动运行 Docker 容器,使用控制台和docker run 命令,您可以将 API 网关保留为 jar 构建。但是,你失去了容器化的所有好处。

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 2018-05-23
      • 2019-07-27
      • 1970-01-01
      • 2019-11-11
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      相关资源
      最近更新 更多