高影响力的Web层群集, 第二部分: 用JavaSpaces构建 - 编程入门网
事务中止 了,那么 JavaSpaces 操作的任何效果(即改变空间内容的 write 和 take)都会回滚并且其 他客户将不会知道曾经试图进行过这些操作。
在多个 JavaSpaces 中执行的操作可以结合到一个事务中,这些 JavaSpaces 可以包括在 地理上分散的实现。在这个外壳下,事务管理器协调参与 JavaSpaces 服务实例之间的分布 式两阶段提交协议。 事务语义极大地简化了对部分失败模式的处理,因为从概念上已经将它消除了。通过结合 项 m 在空间 A 中的 take 和空间 B 中的 write,我们就创建了一个最基本的事务操作。如 果传输时有任何错误,那么项 m 不会从空间 A 中删除。如果传输成功了,那么我们知道 m 肯定是在空间 B 中并从已空间 A 中删除了。 现在我们已经牢固掌握了 JavsSpaces 的概念,就可以在我们的 Web 层群集问题上应用 它们了。在上一篇文章中,我们了解到可以跨越一组分布式 servlet 容器进行内存中应用程 序会话复以制构建可伸缩的、高度可用的群集。使用 JavaSpaces,我们就可以不用费心关注 如何处理实际的会话复制细节。相反,我们将注意力放到会话共享的更高级语义上。 使用分布式共享内存进行会话共享 使用 JavaSpaces,我们就可以创建一个模拟共享内存系统的跨越网络的软件。这个概念 使我们可以跨越空间中的所有客户使用共享会话信息。图 2 展示了会话共享: 图 2. 用分布式共享内存实现共享的会话 在图 2 中,应用程序会话信息是在分布式共享内存中维护的。每一个应用服务器对共享 的会话的任何改变都可以被所有服务器实例看见。所有服务器从同一个(联网共享的)内存位 置读取共享的会话信息。 支持容错的主机/备用机配置 我们现在准备用 JavaSpaces 创建一个分布共享内存语义。在这个初步方案中,我们在一 个事务中结合了一个 take 操作和一个 write 操作以创建一个 update 操作。清单 1 是实 际的 Java 代码,可以在提供的源代码中找到它: 清单 1. updateSession() 方法
高影响力的Web层群集, 第二部分: 用JavaSpaces构建(4)时间:2011-04-16 IBM Sing Li在这段代码中,事务事件 take 和 write 组合成为原子(参阅侧栏“ 我们为什么使 用事务?”中的解释)。注意 write 操作不对从空间中取出的数据进行操作。相反,它 写 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |