如何高效地dockerized java微服务

虽然Java应用程序服务器将扩展独特的JVM以运行多个(微)服务,但是dockerized java微服务体系结构将为每个dockerized微服务运行JVM。 考虑到20个以上的java微服务和有限数量的主机,似乎每个主机上的JVM占用的资源量是巨大的。

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

运行的每个Docker和JVM副本都使用内存。 通常在一个节点上有多个JVM将使用共享内存,但这不是docker的选项。

你可以做的是减less每个JVM的最大堆大小。 但是,我将允许每个Docker映像至less1 GB作为开销,并为每个JVM添加堆大小。 虽然这听起来像是很多的记忆,但这些日子并没有那么多花费。

假设您为每个JVM提供了2 GB的堆并为docker + JVM添加了1 GB,则您正在寻找需要64 GB的服务器来运行20个JVM / docker。