【问题标题】:High performance site高性能站点
【发布时间】:2011-01-23 03:00:42
【问题描述】:

在设计大型社交网站(交易量很大,比如 twitter)时,我应该使用哪些技术?使用开源解决方案 - 数据库 - 网络服务器 - 操作系统

【问题讨论】:

    标签: database web social-networking


    【解决方案1】:

    如您所见,您选择什么并不重要;所有这些网站都有大量流量,但基于的技术却截然不同。

    【讨论】:

    【解决方案2】:

    社交网站中最重要的是后端,因为大部分瓶颈都来自那里。您可能需要考虑 No-SQL 数据库。

    还有一些类似的:

    至于编程语言,正如其他人所说,这并不重要。但是如果你真的不能决定,你可能需要考虑一个像Tornado这样的非阻塞网络服务器。

    【讨论】:

    • 关于数据库的好信息。我一直认为关系数据库是 Twitter 和 Facebook 等网站的答案,但显然不是
    【解决方案3】:

    只要您大量使用memcached,您将选择哪种脚本语言都没有关系。必须拥有正确的缓存层次结构。

    【讨论】:

    • 我认为所有这些框架(PHP、asp.net...)都已经内置了缓存支持
    • 有些可以,有些不可以(PHP 自 5.2/3 起,但可以通过 APC 扩展轻松包含在内)。问题是,你真的想要一个缓存层次结构。拥有几层(至少 3 层,我将持久化数据库层算在内)的缓存可以让您根据数据的频繁使用来分配数据。
    【解决方案4】:

    归根结底,这是个人喜好问题。 Twitter 使用 Ruby on Rails。维基百科在 PHP 上运行。 Reddit 使用名为 web.py 的 Python 库,但最初它是用 Lisp 编写的。我会说选择你最熟悉的技术。

    【讨论】:

      【解决方案5】:

      雅虎工程师关于优化高性能网站的好书是High Performance Web Sites: Essential Knowledge for Front-End Engineers。它又好又短,基本上是关于通过优化探索较少的前端来使网站更快的步骤的项目符号指南。

      【讨论】:

        【解决方案6】:

        作为Joel says

        世界各地的人们都在不断地使用 .NET、Java 和 PHP 构建 Web 应用程序。他们都没有因为技术的选择而失败。

        选择您最了解的“三大”(.Net、Java 或 PHP)中的任何一个 - 众所周知,这些技术是可扩展的,您的网站是否会扩展的真正问题是网站的结构和代码的质量 - 使用您最熟悉的任何框架都会为您提供实现这一目标的最佳机会。

        【讨论】:

          【解决方案7】:

          任何适合您口味的技术,在您的情况下,我认为算法更重要。

          【讨论】:

            【解决方案8】:

            技术,技巧,

            • 研究其他规模化网站使用和完成的工作以及他们遇到的问题比他成功的要少,iTunes 上有播客,Youtube 上有演讲和采访
            • 查看行业最佳实践并在一定程度上遵循它们
            • 不要相信别人的话,确保你看到了问题或成功,而不是关于它的公关浮华
            • 避免无法垂直或水平扩展的明显事物、数据库连接、会话 - cookie 等
            • 将 nosql 存储视为一种 sql 替代方案,开销更少,但功能更少
            • 查看语言/框架时要小心。框架带有很多你不需要的包袱,它们最初会加快你的速度,最终会减慢你的速度,也就是说,你花更多的时间来破解框架而不是构建网站,与语言一样,它会做你想做的事,而不是时髦、酷编程等。

            【讨论】:

              【解决方案9】:

              如果你正在构建类似 Facebook 的东西,那么你的选择就有点有限,Facebook 制作了自己的 PHP Runtime,请查看HipHop For PHP

              【讨论】:

                猜你喜欢
                • 2012-04-05
                • 1970-01-01
                • 2011-01-30
                • 1970-01-01
                • 2019-11-08
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多