【发布时间】:2013-07-24 09:12:02
【问题描述】:
这更像是一个概念性问题,但也欢迎针对(JBoss 等)等开源产品的特定答案。
如果我的企业应用程序需要扩展并且我想选择横向扩展模型(而不是纵向扩展)模型,多个应用服务器实例将如何保留一段代码/数据的单例语义?
示例:假设我有一个 ID 生成类,其逻辑要求将其实例化为单例。此类可能会或可能不会与底层数据库对话。现在,我如何确保在横向扩展时保持此类的单例语义?
其次,是否有一本书或在线资源既列出了这些概念性问题又提出了解决方案?
编辑: 一般来说,如何处理应用服务器层中的通用应用程序状态以允许应用程序横向扩展?我应该进一步探索哪些设计模式、软件组件/产品等?
【问题讨论】:
-
“我有一个 ID 生成类” - 使用 GUID 然后就不需要该类了....
-
谢谢,但那是“假设”的情况。这个问题一般是如何解决的?如果答案恰好是“首先避免问题”,那么我会很好,但我仍然希望得到网络应用程序和扩展专家的确认。
-
我并不是说你不是扩展专家,如果我传达了这个印象,我很抱歉。但我确实想要一个确认,显然你似乎给了一个。但是我的问题是,一般来说,应用服务器层中的状态是如何维护的,以允许应用程序向外扩展?
-
避免 ID 往返的标准技术是使用中间层生成的 GUID。一般状态扩展的问题是一个不同的问题。
-
我在原始问题中添加了 EDIT。
标签: database singleton scale application-server