java - Zuul API GW 作为 docker 容器还是作为 Java Spring 应用程序的一部分?
问题描述
我正在将我的单体应用程序分解为一组用 Java Spring 编写的微服务。作为我的微服务架构的一部分,我正在实现一些基本模式,例如服务发现、API 网关等。我使用“@EnableZuulProxy”将我的 API 网关实现为 Spring 引导应用程序,它是 Spring 云项目的一部分。我的问题是:
- 我的实现和使用现成的 Zuul docker 映像有什么区别?
- 每种方法的优缺点是什么?
解决方案
如果您将 Zuul API Gateway 用作 jar 或 Docker 容器,肯定没有区别。在这两种情况下,它都扮演着 API 网关的角色。
Ops(来自 DevOps)、如何构建、检查、销毁和发布、控制实例数量等方面存在差异。
如果您选择 Docker 作为基础架构的主要部分,并使用 Docker Swarm、Mesos & Marathon、Kubernetes、Nomad 等进行管理,那么将您的 API Gateway 包装到 Docker。
如果您使用控制台和docker run
命令手动运行 Docker 容器,则可以将 API Gateway 保留为 jar 构建。但是,你失去了容器化的所有好处。
推荐阅读
- java - 带图形的按钮
- java - Spring对异步事务方法的catch错误进行操作
- pointers - 将结构转换为字节片的特定地址
- excel - 从字符串 VBA Excel 中减去/减去 1
- jira - Jira + Dashboard:新仪表板中的基本视图?
- composer-php - 使用作曲家“建议”问题
- c - 将多个结构数据复制到一个 C 结构中?
- reactjs - 从 git 存储库安装 NPM 不加载任何 Javascript 文件
- arrays - Azure Logic 应用程序将 XML 转换为 JSON,但将对象的单项数组视为一个对象,在解析 JSON 时如何处理它?
- javascript - 如何在角色之间共享数据?