如何有效地 dockerized java 微服务

How to dockerized java microservices efficiently

虽然 java 应用程序服务器会将独特的 JVM 扩展到 运行 多个(微)服务,但 docker 化 java 微服务架构将 运行 每个 docker 化微服务的 JVM。 考虑到 20+ java 个微服务和有限数量的主机,似乎每个主机上的 JVM 消耗的资源量是巨大的。

有没有有效的方法来解决这个问题?是否可以调整每个 JVM 以限制资源消耗? 目的是限制在 java 微服务架构中使用 docker 的开销。

每个 Docker 和 JVM 副本 运行ning 使用内存。通常在单个节点上有多个 JVM 会使用共享内存,但这不是 docker.

的选项

您可以做的是减少每个 JVM 的最大堆大小。但是,我允许每个 docker 图像至少有 1 GB 作为开销加上每个 JVM 的堆大小。虽然这听起来像很多内存,但现在成本并不高。

假设您给每个 JVM 一个 2 GB 的堆并为 docker+JVM 添加 1 GB,您需要一个 64 GB 的服务器来 运行 20 JVMs/dockers.