当前,我们在一台计算机上正在运行数百个Mule Java 8应用程序。单个JVM似乎正在运行,正在与运行时的应用程序共享数百兆的Jars。如果我们要在Docker容器中运行每个应用程序,那么每个容器会在运行时运行一个单独的JVM吗?如果是这样,将导致大量的RAM损失!
答案 0 :(得分:1)
是的,每个容器都将运行自己的java进程,从而运行自己的JVM。
您可以考虑对应用程序进行分区,以使您可以从一定数量的容器(每个应用程序在一台服务器上运行多个应用程序)而不是从一台服务器| VM上的多个应用程序迁移到多个容器,每个容器在一个服务器上运行一个应用程序
是的,您必须为每个容器复制共享的jar。是的,您会增加CPU,RAM和网络流量。
但是,在复制应用服务器以进行横向扩展并将它们移动到不同的计算机上以更好地反映其CPU,内存和带宽需求时,您将获得更大的灵活性。