【发布时间】:2010-12-02 00:11:14
【问题描述】:
我最近将 Django 用于一个非常小的 CMS 风格的网站。开发 Django 项目的快速和简单给我留下了深刻的印象,我现在正在考虑将它用于一个更大的项目。
但是,在我对这个想法感到兴奋之前,我只是想由实际开发了一个非常大的 Django 网站(具有许多功能和高流量)的人来运行它。
请记住,最近我主要使用 C# Asp.Net - 有什么我应该知道的陷阱吗?
【问题讨论】:
我最近将 Django 用于一个非常小的 CMS 风格的网站。开发 Django 项目的快速和简单给我留下了深刻的印象,我现在正在考虑将它用于一个更大的项目。
但是,在我对这个想法感到兴奋之前,我只是想由实际开发了一个非常大的 Django 网站(具有许多功能和高流量)的人来运行它。
请记住,最近我主要使用 C# Asp.Net - 有什么我应该知道的陷阱吗?
【问题讨论】:
如前所述,这实际上取决于“大”和“复杂”的实际含义。如果您打算建立另一个 eBay,答案是“可能不会”。
这个问题被问了很多。坦率地说,那里有很多答案。 This thread 很不错。今年在 DjangoCon 上,Scaling Django 上也有一个出席人数众多的演讲。无论您使用何种技术,您都可以自行构建网站以使其可扩展。
我的回答是:如果您的网站要超越 Django(或任何其他框架,就此而言),那将是巨大的成功,并且您可能有足够的资金聘请一支庞大的团队重写整个事情。
【讨论】:
这在很大程度上取决于您所说的“大”和“复杂”的确切含义。
就“复杂”而言,看看 Pinax。大量的功能都是由简单的 Django 应用程序连接在一起构建的,它仍然被认为是一个框架,您可以将其用作构建社交软件网站的开始。但我敢肯定,你仍然可以想出一些与 Django 架构不匹配的“复杂”版本。
处理大量流量和大型数据集是另一回事。最终,如果你变得足够大,Django 将无法处理它。但实际上,任何框架也不会。 Jacob-Kaplan Moss(django 开发人员之一)有a great article 概述了导致 Django 发展的 Web 开发历史。他为为什么 Django 或任何其他框架不能在快速开发和大规模可扩展性方面表现出色,但为什么仍然值得从一个开始,他提出了一个非常有力的理由。基本上,没有两个高流量站点会遇到相同的可扩展性问题:它们都需要一种自定义方法,该方法特定于它们必须处理的确切数据类型和流量。但由于很难准确预测这些瓶颈会出现在哪里,因此最好从快速开发框架开始,并在遇到需要时开始更换组件。
【讨论】:
我觉得这很有趣:http://softwaremaniacs.org/blog/2008/02/24/why-offline-crashed-en/
此博客中有很多有趣的文章,但不幸的是,它们都是俄语的。
补充:自从那篇文章 Ivan 确实编写了支持主从复制的 MySQL 后端:http://softwaremaniacs.org/soft/mysql_replicated/en/
【讨论】: