集群环境中的Spring Singleton

时间:2012-07-02 20:28:48

标签: java spring jvm singleton cluster-computing

正如this中所讨论的那样,在集群环境中使用单例是不合适的(因为不同JVM中有多个单例对象),对于Spring创建的单例,这一点必须如此。框架。

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

1 个答案:

答案 0 :(得分:7)

情况不一定如此。

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

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

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

相关问题