[java] 为什么我们在同一台服务器上使用多个应用服务器实例?



Answers

我想你是指应用程序集群。

AFAIK,JVM生成的堆大小真的很大,但是我敢肯定,通过使用GC算法和参数 ,可以将损坏降至最低。 另外,集群应用程序没有单点故障。 如果一个节点发生故障,剩下的节点可以继续为客户端服务。 这就是“基于消息的体系结构”非常适合可伸缩性的原因之一。 每个请求都映射到一个消息,然后可以由群集中的任何节点拾取。

还有一点是要同时处理多个请求,以防你的应用程序不幸地使用synchronized关键字。 我们目前有一个遗留的应用程序,它有很多的共享状态(不幸的是),因此并发的请求处理是通过用一个中央调度单元产生大约20个JVM进程来完成的,这个中央调度单元完成了所有的调度工作。 ;-)

Question

我想有一个很好的理由,但我不明白为什么有时我们把5个实例放在同一台物理服务器上。

这与多处理器架构的优化有关吗? JVM或其他东西允许的最大RAM内存限制?




使用多重实例的另一个原因是可维护性。

例如,如果您为多个客户提供多个不同的应用程序,那么为每个应用程序分别提供应用程序服务器的实例可能会使您的生活在发布期间必须重新启动应用程序服务器时变得容易一些。




Related