Zuul API GW 作为 docker 容器还是作为 Java Spring 应用程序的一部分?
Zuul API GW as a docker container vs. as part of a Java Spring application?
我正在将我的整体式应用程序分解为一组用 Java Spring 编写的微服务。作为我的微服务架构的一部分,我正在实现一些基本模式,例如服务发现、API 网关等。
我使用“@EnableZuulProxy”将我的 API 网关实现为 Spring 启动应用程序,它是 Spring 云项目的一部分。
我的问题是:
- 我的实现和使用 Zuul 有什么不同 docker
图片是现成的?
- 每种方法的优缺点是什么?
如果您使用 Zuul API 网关作为 jar 或 Docker 容器,肯定没有区别。在这两种情况下,它都扮演着 API 网关的角色。
Ops(与 DevOps)、构建、检查、销毁和发布的方式、控制实例数量等方面存在差异。
如果您选择 Docker 作为基础设施的主要部分,并使用 Docker Swarm、Mesos & Marathon、Kubernetes、Nomad 等管理它,那么请包装您的 API 通往 Docker.
的门户
如果您手动 运行 您的 Docker 容器,使用控制台和 docker run
命令,您可以将 API 网关保留为 jar 构建。但是,你失去了容器化的所有好处。
这两种解决方案都支持应用程序实例之间的平衡。
主要区别是:
Zuul API GW :
- 无法自动启动新实例(您应该手动缩放)
- 无需容器化您的应用程序
Docker container orchestrator (Docker Swarm, Kubernetes ...) 具有自动扩展的能力(启动新实例在需要的时候)
我正在将我的整体式应用程序分解为一组用 Java Spring 编写的微服务。作为我的微服务架构的一部分,我正在实现一些基本模式,例如服务发现、API 网关等。 我使用“@EnableZuulProxy”将我的 API 网关实现为 Spring 启动应用程序,它是 Spring 云项目的一部分。 我的问题是:
- 我的实现和使用 Zuul 有什么不同 docker 图片是现成的?
- 每种方法的优缺点是什么?
如果您使用 Zuul API 网关作为 jar 或 Docker 容器,肯定没有区别。在这两种情况下,它都扮演着 API 网关的角色。
Ops(与 DevOps)、构建、检查、销毁和发布的方式、控制实例数量等方面存在差异。
如果您选择 Docker 作为基础设施的主要部分,并使用 Docker Swarm、Mesos & Marathon、Kubernetes、Nomad 等管理它,那么请包装您的 API 通往 Docker.
的门户如果您手动 运行 您的 Docker 容器,使用控制台和 docker run
命令,您可以将 API 网关保留为 jar 构建。但是,你失去了容器化的所有好处。
这两种解决方案都支持应用程序实例之间的平衡。
主要区别是:
Zuul API GW :
- 无法自动启动新实例(您应该手动缩放)
- 无需容器化您的应用程序
Docker container orchestrator (Docker Swarm, Kubernetes ...) 具有自动扩展的能力(启动新实例在需要的时候)