我有一个带有单例服务的Spring Web应用程序。还有一些单例变量,例如所有经过身份验证的用户的会话数据映射等等。 这一切在一台服务器上运行良好,但该系统如何在几台服务器之间分配? 系统在Tomcat上运行。
答案 0 :(得分:2)
Terracotta有Spring支持,并确保它在Terracotta集群的所有实例中只有一个单独的bean。
您需要做的就是启用Terracotta并以声明方式将单例bean添加到群集中。
如果您懒得注册社区帐户,可以在online documentation中阅读更多内容。
答案 1 :(得分:0)
答案 2 :(得分:0)
这是单身人士被认为是愚蠢或有害的原因之一。看看Google Singleton Detector。这是一个检测java字节代码中的单例的工具。请参阅常见问题解答,了解单身人士的问题。
如果要对应用程序进行聚类,请避免使用单例。考虑将状态持久化到数据库中。