我正在将我的单体应用程序分解为一组用 Java Spring 编写的微服务。作为微服务架构的一部分,我正在实施一些基本模式,例如服务发现、API 网关等。我使用“@EnableZuulProxy”将我的 API 网关实现为 Spring 启动应用程序,它是 Spring 云项目的一部分。我的问题是:我的实现和使用现成的 Zuul docker 镜像有什么区别?每种方法的优缺点是什么?
2 回答
慕容3067478
TA贡献1773条经验 获得超3个赞
这两种解决方案都支持在应用程序实例之间进行平衡。
主要区别在于:
Zuul API 网关:
无法自动启动新实例(您应该手动扩展)
无需容器化您的应用程序
Docker 容器编排器(Docker Swarm、Kubernetes ...)具有自动扩展的能力(在需要时启动新实例)
杨__羊羊
TA贡献1943条经验 获得超7个赞
如果您将 Zuul API 网关用作 jar 或 Docker 容器,则绝对没有区别。在这两种情况下,它都扮演 API 网关的角色。
Ops(来自 DevOps)、构建、检查、销毁和发布的方式、控制实例数量等方面存在差异。
如果您选择 Docker 作为基础架构的主要部分,并使用 Docker Swarm、Mesos & Marathon、Kubernetes、Nomad 等对其进行管理,那么将您的 API 网关包装到 Docker。
如果您手动运行 Docker 容器,使用控制台和docker run
命令,您可以将 API 网关保留为 jar 构建。但是,你失去了容器化的所有好处。
添加回答
举报
0/150
提交
取消