- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chap7-分布式系统设计的几个问题
* * * * * * * * * * * * * * * * * * * 热备份 由两个或多个冗余的服务器组成,其中的每个服务器都接受和处理所有的客户请求。当一个服务器发生故障时,其余的复制件可以继续操作。 优点:平均故障恢复时间可忽略不计。 请求的有序性。所有的服务器要按正确次序执行请求。 对多个响应的处理:要么客户程序要能够处理单个请求的多个响应,要么,要使用一个中介(如集中器)来屏蔽多个响应,而只留下一个送回客户端。 消息的有序化和响应过滤在某种程度上限制了该方法的魅力。 如果备份服务器检测到主服务器终止 或无反应,它将提升自己,并在必要 时终止主服务器。并在另一个服务器主 机上启动一个新备份服务器。 实例:一个高可用的CORBA系统 使用暖备份:备份服务器通过 CORBA调用从主服务器接受 状态更新。 备份服务器对主服务器进行监控: 如果它在一段时间内未从主服务器 收到任何更新,就开始调用主服务 器提供的Ping方法。 客户应用程序存储到主服务器和 备份服务器的对象引用。 为防止数据库为故障单点,它也 是复制的。写操作必须送到两个 数据库实例中。 数据库复制模型 在单个事务的上下文中 更新两个数据库。 应用程序只和主数据库打 交道,并依赖数据库复制 机制来传布任何更新。 高可用性分析(1) 主CORBA服务器故障:进程冻结或终止 备份服务器将检测到主服务器故障,并将自己提升为主服务器。并在另一个服务器主机上启动一个新备份服务器。 备份服务器的状态与主服务器同步,已准备好处理请求。 所有客户机已具有到备份服务器的对象引用,因此可以快速地切换到备份服务器。 新服务器必须设法与主服务器同步状态。如使用应用程序状态持久日志。 高可用性分析(2) 单数据库故障: 主服务器将检测到该故障,并必须对其进行处理。如何解决这个问题依赖于所使用的数据库复制模式。 如果使用一个事务的复制模式; 如果使用数据库复制机制; 高可用性分析(4) 两个CORBA服务器同时发生故障: 这种情况将导致完全失去服务,在本例中看作时极少可能出现的情况,并假定不会发生。 两个数据库同时失效: 极少发生。为避免这个问题,数据库将在物理上分开的两台机器上运行,并使用RAID存储器。 一个CORBA服务器和一个数据库同时发生故障: 极少发生,且本例结构可以应付这种情况。 高可用性分析(5) 灾难性网络故障: 服务器运行于物理上隔离的计算机房中的机器上,且对出入机房作出限制。 可在主机之间使用冗余网络连接,以进一步减少此类故障发生的机会。 高可用性分析(6) 进程退化: 问题:当服务器运行时,其进程规模将增大,同时发生内存泄漏,允许这种情况持续是非常糟糕的:服务器将不断增大,导致它运行得更慢,有时,资源耗尽,而可能发生灾难性的事故。 解决:采用防护性的办法,计划在额定的时间重启服务器。例如,可以选择 令整个系统在每天夜里重新关闭并重启(假定此时它是空闲的或客户请求是极少的)。也可以令主服务器规则地(如90分钟)自行关闭,将控制传给备份服务器。这就保证了没有服务器可以运行超过3小时,减少了资源泄漏导致的不良影响。 CORBA小结 在还没有CORBA产品自身支持容错规范的情况下,将不同的技术组件组合到一个健壮的、可伸缩的解决方案中去的责任,就落到了应用程序开发者的身上。 应尽量最小化故障单点,甚至恢复机制本身就应该容错。 在性能和容错之间有一个折衷:虽然可以试图重建系统来处理0.01%的故障机会,但应该保证容错机制在99.99%的情况下对应用程序的性能不产生不利的影响。 小结:设计大型CORBA应用系统时应考虑 分析系统中CORBA对象和伺服对象的类型,以便选择POA的各种对象激活机制以及伺服对象的管理机制。 在系统中,哪些对象应作为CORBA对象,哪些不应该。CORBA对象应对外提供什么样的接口,以使性能得到提高。 改善可伸缩性:通过结合使用复制和分区技术,将应用程序的负载分布到多个可执行程序和多个主机上。 克服资源限制:注意CPU数量、内存、TCP连接、线程限制,要确保可以合理地释放或重用它们。 限制故障所引起的危害:应用分区、复制等技术来限制单个服务器故障可能引起的危害。 对事务处理的支持等。 3.7 小结 ORB的体系结构:为什么在异构环境下能够透明地发送请求和接收响应。 CORBA程序开发的基本过程:掌握开发CORBA程序的基本方法。 CORBA服务:初步了解CORBA服务,以及可以怎样使用它们。 设计基于CORBA的大型系统需考虑的问题:设计对性能、可靠性要求较高的系统时需要考虑的问题。 * * * * * * Interface Employee; Struct EmployeeData{ String m_title; String
文档评论(0)