如何有效地 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.
虽然 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.