Zuul API GW 作为 docker 容器还是作为 Java Spring 应用程序的一部分?

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

  1. 我的实现和使用现成的 Zuul docker 镜像有什么区别?

  2. 每种方法的优缺点是什么?


繁星淼淼
浏览 135回答 2
2回答

慕容3067478

这两种解决方案都支持在应用程序实例之间进行平衡。主要区别在于:Zuul API 网关:无法自动启动新实例(您应该手动扩展)无需容器化您的应用程序Docker 容器编排器(Docker Swarm、Kubernetes ...)具有自动扩展的能力(在需要时启动新实例)

杨__羊羊

如果您将 Zuul API 网关用作 jar 或 Docker 容器,则绝对没有区别。在这两种情况下,它都扮演 API 网关的角色。Ops(来自 DevOps)、构建、检查、销毁和发布的方式、控制实例数量等方面存在差异。如果您选择 Docker 作为基础架构的主要部分,并使用 Docker Swarm、Mesos & Marathon、Kubernetes、Nomad 等对其进行管理,那么将您的 API 网关包装到 Docker。如果您手动运行 Docker 容器,使用控制台和docker run命令,您可以将 API 网关保留为 jar 构建。但是,你失去了容器化的所有好处。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java