本节书摘来自华章计算机《大规模java平台虚拟化与调优》一书中的第1章,第1.1节,作者:(美)emad benjaminliang) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
本章定义了3类大规模的java平台:
第1类:大量的java虚拟机(java virtual machine,jvm)(100~1000个jvm)。
第2类:jvm的数量较少但是堆很大。
第3类:前两类的组合,其中第1类使用的数据来源于第2类的平台之中。
除此之外,本章还讨论了各种趋势,并且大致描述了一些技术性的考量因素,以帮助你理解设计大规模java平台时与之相关的技术问题。
基于与客户的交流,大规模的java平台主要可以分为如下的3类:
第1类:这一类的特点在于拥有大量的java虚拟机(java virtual machine,jvm)。在这类中,有数百甚至上千个jvm部署到java平台上,这些jvm通常应用于一个系统中,并且服务于百万级的用户。我曾经见过有的用户具备多达15 000个jvm。当你与上千个的jvm实例打交道的时候,你必须要考虑到管理成本以及是否能有机会合并这些jvm实例。
第2类:这一类的特点是更少数量的jvm(通常是1~20个),但是堆会比较大(8~256gb,甚至更大)。这些jvm通常有内存数据库部署在里面。在这类中,垃圾收集(garbage collection,gc)的调优变得至关重要,后续的章节中会进行讨论。
第3类:这一类结合了前面提到的两类,在这里可能会有上千台jvm运行企业级应用,而应用所使用的数据来源于后端第2类的大型jvm。
关于大规模java平台的虚拟化与调优,以上提到的3类都有4种关键的需求趋势:
计算资源的合并
jvm合并
弹性和灵活性
性能
让我们更为详细地看一下每个趋势。