大多数人使用某种 IoC 框架 - Guice、Spring,应有尽有。我们中的许多人也需要扩展他们的应用程序,因此他们使用 Terracotta、Glassfish/JBoss/insertyourfavouritehere 集群使他们的生活复杂化。
但这真的是要走的路吗?您在使用上述任何一种吗?
这是我们目前在一个尚未开源的框架中实现的一些想法,我想看看您对此有何看法,或者“它完全是对 XY 的抄袭!”。
- 集群范围的对象复制——给它一个名字,无论何时你做某事(在任何节点) 在这样的对象上,它将被复制——有不同的保证
- 做透明的软负载平衡——最简单的场景:restful webservice 方法调用代理到另一个节点
- 仅查看节点注入(inject):将代理注入(inject)“命名”对象,并让您的调用自动代理到节点
你会用这样的东西吗?是否有最新的、稳定的、企业就绪的实现?
最佳答案
FWIW 我在一家从事超大规模 Web 应用程序的公司工作,我们倾向于不使用这种形式的对象缓存。
事实上,我们倾向于通过不在 session 中存储任何内容并且不缓存任何事务性的和需要在当前状态下读取的内容来让我们的生活更轻松。这样您的应用程序就非常简单,易于推理,并且非常容易水平扩展。
我猜想使用这些对象缓存的基本原理主要是为了减少持久性存储的负载并可能减少延迟。我的建议是独立于相对笨拙的 webapp 来扩展这个后端。大多数大型站点通过使用只读副本和数据分片来做到这一点。在这里看看:http://highscalability.com/livejournal-architecture .我记得很久以前看过这个,非常有趣。它也非常适合我所看到的高流量网站中使用的那种架构。
关于java - 扩展 Java 应用程序 - 现有的集群感知 IoC 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2458100/