集群环境中的Spring Singleton

San*_*dal 4 java singleton spring jvm cluster-computing

正如在讨论这个职位,所以不适合使用单在集群环境中(因为在不同的JVM多单的对象),这必须是由Spring框架创建单身真.

如果这是正确的,那么我们必须非常小心使用Spring框架来使用单例类.你能否告诉我这是否正确理解?

Eng*_*_DJ 7

情况不一定如此.

如果单个JVM 共享有意义的状态,则在单独的JVM中使用单例是一个问题.例如,如果两个独立的应用程序服务器上存在两个独立的实例,而这两个实例都是同一个应用程序的一部分,则存储和发出递增ID的单例将非常危险.

Spring中没有什么固有的东西可以使这个或多或少地处理起来.您的春豆(可能是服务)应该旨在保持尽可能少的状态,作为良好实践的问题.如果他们需要共享状态,那么您将必须像处理任何其他共享状态一样解决此问题.

很多人在集群环境中使用Spring,并且不会遇到与上述相关的任何问题.我是其中之一!