构架大规模可扩展性系统的笔记.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
构架大规模可扩展性系统的笔记

引言 1 第 章 系统稳健性的一些模式 2 第 章 客户端提高扩展性的一些模式 3 第 章 高可扩展性的理论基础 4 第 章 分区 5 第 章 数据 6 第 章 数据 7 NoSQL- RDBMS 第 章 克服 的性能瓶颈 8 SOA 第 章 9 第 章 异步 第 10 章 缓存 第 11 章 云计算 第 12 章 监控 第 13 章 案例 引言 国内还没有一篇一线专业技术人员自己编写的关于大型网站的架构技术 书,尤其是对于可扩展性设计的比较全面的描述。本书希望通过介绍一 些常见的设计模式和规则,能够为编程人员和架构设计师提供一个轻便 的快速指南。 在我加入一家世界著名的电子商务公司之前,一直在硅谷的一些初创公 司做构架和开发工作。进入公司没多久,经理要我把系统的一部分用 Java 重新设计。我很快给出了一个原型,但是在部门内部做演示的时候 被否决掉了,一个重要原因是我在设计中使用了全局事务管理,而这在 公司内部是严格禁止使用的。从学校修完数据库理论课程后我就一直相 信数据库事务处理的ACID 是不可动摇的准则,结果非常惊讶的发现在实 践中还有第二条道路的存在。 在后来的工作中,深切体会到一个大型网 站为了实现高可用性和高扩展性而在系统架构方面的一些设计理念,无 论是在理论或者实践中,和中小型网站的构架有着明显的不同。再举个 例子, EBay 在公开的技术架构设计介绍中,避免使用开源代码的 ORM, 不使用实体 bean,而是使用它自己的OR 映射解决方案。 希望本文档能 够帮助那些习惯了中小规模网站开发的技术人员,更快适应大型网站开 发环境, 或者在设计时更全面的考虑到系统将来的可扩展性的要求。 这本小册子的的宗旨是帮助构架大规模网站系统,因为可用性 Availability) Stability) Scalability ( ,稳定性( 和 可扩展性( )三个方面 是相互关联的, 我们将先介绍可用性和稳定性的一些常见模式,然后用 主要篇幅详细介绍可扩展性的实现规则。 系统稳健性的一些模式 抛开稳健性来谈谈系统的可扩展性,就像一只没有稳固后防的球队想取 得好成绩,或者在沙滩上堆建宏伟的城堡,注定缘是 求鱼式的努力。 一个很明显的例子是当今社会的维稳成本已经高过国防支出,没有稳定 性,就没有可持续发展的可能。这个章节我们先讨论和稳健性相关的一 些常用模式。 稳健性概念看似直观,但是由于开发小组和维护小组往往是不同成员, 多数程序开发员并没有实际经验去处理产品的稳健性问题。在XP 和敏捷 开发中,测试导向[Test Driven ] 的开发理念强调开发可测试的单元,在 一定程度上导致了实现所有功能和系统可实际交付使用之间的差距。系 统稳健性的很多问题往往在系统交付运行一定时间后才显示出来。比如 很多系统存在一定程度的内存泄漏,程序在运行一段时间后需要重新启 动; 或者产品运行时关联系统崩溃,用户负载的突然变化,以及网络阻 塞。所有这些在开发测试环境中被忽略或难以重复的因素,程序开发人 员应该在技术架构及开发时加以考虑。 有人开玩笑说,程序员的一生有 件事情不可避免,交税,死亡,和 BUG。社会学中著名的墨菲定律告诉我们: 如果壞事有可能發生,不管這 種可能性有多小,它總會發生,並造成最大可能的危害。既然一个具有一定 复杂度的软件系统中的 Bug 是不可避免的,开发人员在设计开发系统时, 需要考虑处理各种可能的差错;而不是因为直觉上认为这些差错发生的 可能性比较低而指望它们在实际运行中不会发生。 稳健性原则

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档