冰框架:理解与实践调用超时和虚拟化技术

需积分: 49 25 下载量 191 浏览量 更新于2024-08-09 收藏 7.08MB PDF 举报
本资源是一份关于数据中心虚拟化技术的权威指南,特别关注了Ice分布式程序设计中的调用超时机制。Ice(Internet Communications Engine)是一种广泛应用于分布式系统的设计框架,它允许客户端和服务器之间的远程通信,支持对象和数据的透明传输。章节16.9详细介绍了如何在Ice中处理同步和阻塞的远地调用可能遇到的超时问题。 在Ice中,当客户端发起的远程调用可能会阻塞,直到服务器处理完毕。然而,为了防止长时间无响应导致资源浪费,Ice提供了`ice_timeout`操作,这是一个在代理级别实现的功能。这个操作接受一个整数值,以毫秒为单位,作为超时设置。如果在指定时间内服务器未响应,调用将自动终止并抛出`Ice::TimeoutException`异常。 Java接口`ObjectPrx`中的`ice_timeout`方法允许用户在调用前设置超时,如`timeoutFile = FileSystem::FilePrx::uncheckedCast(myFile->ice_timeout(5000))`。这里的5000毫秒表示一个五秒钟的超时限制。如果尝试读取文件时超过这个时间,程序会捕获`TimeoutException`并处理超时情况。 值得注意的是,超时值可以设为-1,表示无限等待,如果没有特别设置,调用默认不会有超时。通过这种方式,开发者可以根据需要灵活控制远程操作的执行时间,增强系统的响应性和可靠性。 整个指南还涵盖了Ice架构、设计原则以及与其他技术的集成,适合深入理解分布式系统编程和优化网络通信性能的开发者使用。同时,它强调了版权和免责声明,以及Ice源码中依赖的第三方软件及其许可协议。对于阅读中文版的反馈,可以通过邮件地址与作者或译者取得联系。