Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Architecture 如何设计可伸缩的应用程序?_Architecture_Scalability - Fatal编程技术网

Architecture 如何设计可伸缩的应用程序?

Architecture 如何设计可伸缩的应用程序?,architecture,scalability,Architecture,Scalability,如何设计/构建可扩展的应用程序?有没有关于书籍或网站的建议可以帮助理解如何扩展应用程序 谢谢为此,我推荐这本书: 尽管这本书主要是一本PHP书籍,但对于任何web堆栈来说,其思想都是相同的。在开始使用该技术之前,您应该知道应用程序的范围。客户/业务部门对性能的期望是什么,故障的关键领域是什么?斯科特·汉斯曼对这个问题有很好的看法 提供的一些花絮:除非必须,否则不要使用缓存;提供文件比从数据库中组装片段更快;知道如何处理peek服务器时间;知道你的巅峰会是什么 同样,首先要知道使用范围,以便知道

如何设计/构建可扩展的应用程序?有没有关于书籍或网站的建议可以帮助理解如何扩展应用程序


谢谢

为此,我推荐这本书:


尽管这本书主要是一本PHP书籍,但对于任何web堆栈来说,其思想都是相同的。

在开始使用该技术之前,您应该知道应用程序的范围。客户/业务部门对性能的期望是什么,故障的关键领域是什么?斯科特·汉斯曼对这个问题有很好的看法

提供的一些花絮:除非必须,否则不要使用缓存;提供文件比从数据库中组装片段更快;知道如何处理peek服务器时间;知道你的巅峰会是什么


同样,首先要知道使用范围,以便知道您是否应该缩放。

正是您所需要的!《应用程序体系结构指南》是由Microsoft Patterns and Practices团队创建的,目的是帮助架构师……

在过去的一年中,我不得不在我公司正在进行的一个项目中快速了解这个问题,我发现这些资源非常有用:Todd Hoff,西奥·施洛斯纳格尔;卡尔·亨德森。Highscalability.com将特别为您介绍许多优秀的演示、教程、书籍和论文,这是一个很好的起点。所有的建议都是实用的,并且基于Flickr、Twitter和Google等网站的经验


顺便说一句,可伸缩性不是性能。一个完全可扩展的系统是一个具有固定边际成本以增加额外用户或容量的系统

这是一个很好的主题介绍: IBM developerWorks提供了两个有趣的教程,介绍如何在可扩展的应用程序中使用体系结构模式:和。

  • 我倾向于认为可伸缩性与可维护性密切相关。而且人们似乎经常忽视的是,人们只花很短的时间开发应用程序,而剩下的时间则是维护应用程序

  • 而且,扩展几乎肯定与数据有关(数据比代码更灵活,因此您希望拥有越来越多的数据),这就是为什么您的存储访问成本应该保持在
    O(1)
    O(n)
    之间的原因

  • 对于我来说,完全可伸缩的应用程序是一个可以从一个环境复制到另一个(类似)环境的应用程序,配置一些值并运行它以扩展整个应用程序的执行范围


    • 这里已经发布了一些很好的答案。在一些书和链接中,你会发现一些常见的思维模式

      • 尽可能少地编写代码

      • 尽可能地重用代码

      • 不要过度抽象你的设计

      • 将事物划分为可在单独或多个系统上运行的模块化区域。繁重的加工应留给一个单独的系统


        • 这是一篇关于livejournal以及他们如何随时间扩展应用程序的精彩文章

          [PDF]


          这可能不是你想要的那种东西,但它是更好的“这就是我们所做的,为什么”关于扩展的概述。

          无论你做什么,你都不能从一开始就将系统设计为可扩展的,以满足你的所有需要。通常,一旦您的系统运行起来,您就会在最不期望的地方发现瓶颈(即:本地网络带宽)。无论如何,我的建议肯定也是highscalability.com:)

          我同意,尽管我不会把它描述为一本PHP书。它有Perl、OraclePL/SQL和其他语言的重要示例,还有很多高级材料,例如第5章关于负载平衡(无代码示例),第6章关于静态内容服务(一个小PHP片段)。我看到的一个批评是,他过于关注约翰·霍普金斯传播图书馆,但总体而言,高可扩展性社区的人们对它赞不绝口。你在那里指出了很好的资源!哦,twitter的建议,一定很好……)哈,我想我可以选一个更好的例子!;-)但推特必须努力克服成长中的痛苦。请参阅。查看本文和postGood参考资料。+1这将贯穿整个过程,从一台机器开始,到将一个大型站点分片到用户集群。他们2007年的陈述如下:2007年陈述的较长版本:ver