在高性能硬件上部署程序,目前主要由两种方式:通过64位JDK使用大内存、通过多个32位JVM建立集群。
- 通过64位JDK使用大内存
使用这种方式的关键是要控制full GC的频率,保证full GC控制在一个相对较低的频率。比如十几个小时就行一次full GC,可以在深夜发生从而不影响用户的使用。
可能引发的问题:- 内存回收导致长时间停顿
- 64位JDK性能低于32位JDK
- 消耗的内存比32位JDK多
- 多个32位JVM建立集群
具体做法:在一台物理服务器上启动多个服务器进程,给每个服务器进程分配不同的端口,然后再搭建一个负载均衡器,以反向代理的方式来分配请求,降低服务器访问压力。
可能引发的问题:- 很难高效利用资源池
- 多个虚拟节点竞争共享资源时容易出现问题