我将我的monolith应用程序分解为一组用Java Spring编写的微服务。作为我的微服务架构的一部分,我正在实现一些基本模式,如服务发现,API网关等。我使用“@EnableZuulProxy”将我的API网关实现为Spring启动应用程序,这是Spring云项目的一部分。我的问题是:
如果您将Zuul API网关用作jar或Docker容器,那么肯定没有区别。在这两种情况下,它都扮演API网关的角色。
Ops(来自DevOps),如何构建,检查,销毁和发布,控制实例数等等有所不同。
如果您选择Docker作为基础架构的主要部分,并使用Docker Swarm,Mesos和Marathon,Kubernetes,Nomad等管理它,那么将您的API网关包装到Docker。
如果您使用控制台和docker run
命令手动运行Docker容器,则可以将API网关保留为jar构建。但是,你放弃了集装箱化的所有好处。