集群环境中的Spring Singleton

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

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

情况不一定如此。

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

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

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