集群环境下的Spring Singleton

2024-04-17

正如中所讨论的this https://stackoverflow.com/questions/1194129/singleton-in-cluster-environmentpost,不适合使用单例聚集的环境(因为不同 JVM 中有多个单例对象),对于 Spring 框架创建的单例来说必须如此。

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


情况不一定如此。

在不同的 JVM 之间使用单例是一个问题,如果它们分享有意义的状态。例如,如果两个单独的实例存在于属于同一应用程序的两个单独的应用程序服务器上,则存储和发出递增 ID 的单例将非常危险。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集群环境下的Spring Singleton 的相关文章

随机推荐