首页 > 解决方案 > Zuul API GW 作为 docker 容器还是作为 Java Spring 应用程序的一部分?

问题描述

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

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

标签: javaspring-cloudnetflix-zuulspring-cloud-netflix

解决方案


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

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

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

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


推荐阅读