【发布时间】:2019-01-07 02:47:58
【问题描述】:
我提前为这篇长篇文章道歉!
背景:
我正在处理的服务有一个 angular 7 的前端,springboot 2.0.0.RELEASE 的后端,以及一个 MongoDB 的数据库层(最新的 docker 版本)。应用程序的所有 3 层都在同一台 RHEL 机器上的自己的 docker 容器中运行,但它们都在同一个 docker 网络上。
Angular 应用程序通过 nginx 容器静态托管,springboot 使用命令“java -jar app.jar”作为 jar 运行。除了端口,我没有更改 Docker 字段,所以 docker 的所有其他选项都是默认的。
问题:
当我启动所有三个容器并尝试对它们运行量角器 e2e 测试时,我会偶尔从后端收到 503 Service Unavailable。我有一套 12 个测试,所有测试都按顺序运行。我等到所有容器都完全启动后再执行测试,它会在 12 个测试中的任何一个测试中随机失败。测试失败后,我将手动运行测试步骤并尝试复制,但它总是通过。当我在 docker 容器中将后端作为 gradle springboot 运行时,我没有遇到任何问题。所以问题只是当我尝试对 dockerized jar 运行自动化测试时。
我已将 Spring Web 日志上的日志记录从 DEBUG 增加到 TRACE,并且一切正常。
我认为这是一个内存问题。可能是运行 java jar 的 java 堆问题或对后端或数据库的 api 调用过载?这是否与为 mongo 和 nginx 容器分配大量内存有关。
任何解决此问题的信息或替代假设将不胜感激。谢谢!
【问题讨论】:
-
Bruh,Angular 7 还不存在。你在未来
标签: java angular mongodb docker spring-boot