我正在将我的整体应用程序分解为一组用Java Spring编写的微服务。作为微服务架构的一部分,我正在实现一些基本模式,例如服务发现,API网关等。 我使用Spring Cloud项目的一部分“ @EnableZuulProxy”将API网关实现为Spring引导应用程序。 我的问题是:
答案 0 :(得分:1)
如果您将Zuul API Gateway用作jar或Docker容器,则绝对没有区别。在这两种情况下,它都扮演着API网关的角色。
(与DevOps相比)Ops,在构建,检查,销毁和发布方式,控制实例数量等方面存在差异。
如果选择Docker作为基础架构的主要部分,并使用Docker Swarm,Mesos和Marathon,Kubernetes,Nomad等进行管理,则将API网关包装到Docker。
如果您使用控制台和{{1}}命令手动运行Docker容器,则可以将API网关保留为jar版本。但是,这样就失去了容器化的所有好处。
答案 1 :(得分:0)
这两种解决方案都提供了在应用程序实例之间进行平衡的支持。
主要区别是:
Zuul API GW :
Docker容器编排器(Docker Swarm,Kubernetes ...)具有自动扩展的能力(需要时启动新实例)