我正在用Django构建一个web应用程序。我选择Django的原因是:

我想使用免费/开源工具。 我喜欢Python,觉得它是一种长期的语言,而对于Ruby,我不确定,而PHP似乎是一个巨大的麻烦。 我正在为一个想法构建一个原型,并没有过多地考虑未来。开发速度是主要因素,而且我已经了解Python。 我知道迁移到谷歌应用程序引擎将更容易,如果我选择这样做在未来。 我听说Django很“不错”。

现在我越来越接近于考虑出版我的作品,我开始担心规模问题。我找到的关于Django伸缩能力的唯一信息是Django团队提供的(我不是说什么要忽略它们,但这显然不是客观的信息…)

我的问题:

目前在Django上构建的“最大”站点是什么?(我主要通过用户流量来衡量规模) Django能每天处理10万名用户,每个用户访问站点几个小时吗? 像Stack Overflow这样的站点可以在Django上运行吗?


当前回答

正如在高性能Django书中所述 然后查一下卡尔·亨德森

详情如下:

人们经常会说“Django无法伸缩”。这取决于你如何看待它,这种说法要么完全正确,要么明显错误。Django本身是无法伸缩的。

Ruby on Rails、Flask、PHP或数据库驱动动态网站使用的任何其他语言也是如此。

不过,好消息是Django与缓存和缓存套件的交互非常漂亮 负载平衡工具将允许它扩展到尽可能多的流量,你可以扔在它。

与你在网上看到的相反, 它可以做到这一点,而不需要替换通常被标记为“太慢”的核心组件,如数据库ORM或模板层。

Disqus每月的页面浏览量超过80亿次。这些都是很大的数字。

这些团队已经证明了Django的扩展性。 我们在林肯环线的经验证明了这一点。

我们已经建立了大型的Django站点,可以让用户在Reddit主页上轻松浏览一整天。

Django在伸缩方面的成功案例不胜枚举。

它支持Disqus、Instagram和Pinterest。想要更多的证据吗?只用3个工程师(其中2个没有后端开发),Instagram就能在Django上维持超过3000万的用户

其他回答

请注意,如果您希望每天有10万用户,并且一次活跃数小时(意味着最多有2万+并发用户),那么您将需要大量的服务器。SO有大约1.5万名注册用户,其中大多数人可能不是每天都活跃。虽然大部分流量来自未注册用户,但我猜他们中很少有人在网站上停留超过几分钟(即他们关注谷歌搜索结果后离开)。

对于这样的容量,预计至少需要30台服务器……这仍然是相当沉重的,每台服务器有1000个并发用户。

是的,它可以。它可以是Django with Python或Ruby on Rails。它仍然会缩放。

有几种不同的技术。首先,缓存不是可伸缩性。除了硬件平衡器之外,还可以有多个应用服务器以nginx作为前端平衡。 为了在数据库端扩展,如果你走RDBMS的路,你可以在MySQL / PostgreSQL中使用读从。

Django中一些大流量网站的例子如下:

当他们还在那里的时候。 通用共享评论管理器 所有与报纸相关的网站:《华盛顿邮报》等。

你会有安全感。

我认为问题并不在于Django的伸缩性。

我真的建议你研究一下你的架构,这将有助于你的扩展需求。如果你弄错了,Django的性能就没有意义了。性能=规模。你可以拥有一个具有惊人性能但无法扩展的系统,反之亦然。

您的应用程序是否绑定了数据库?如果是,那么你的规模问题也存在。你打算如何与Django中的数据库交互?如果数据库处理请求的速度不及Django接收请求的速度,会发生什么?当您的数据超出一台物理机器时会发生什么。你需要考虑如何应对这些情况。

此外,当你的流量超过一个应用服务器时会发生什么?在这种情况下,如何处理会话是很棘手的,通常情况下,您可能需要一个共享的“无”架构。这取决于你的应用。

简而言之,决定规模的不是语言,而是语言的性能(同样取决于您的应用程序,不同的语言表现不同)。正是您的设计和架构使扩展成为现实。

我希望它能有所帮助,如果你有问题,我很高兴能进一步帮助你。

目前在Django上构建的“最大”站点是什么?(我主要通过用户流量来衡量规模) Pinterest disqus.com 更多信息请点击:https://www.shuup.com/en/blog/25-of-the-most-popular-python-and-django-websites/

Django能每天处理10万名用户,每个用户访问站点几个小时吗? 是的,但是要使用正确的架构,数据库设计,使用缓存,使用负载平衡和多个服务器或节点

像Stack Overflow这样的站点可以在Django上运行吗? 是的,只需要按照第二个问题中提到的答案

我觉得我们不妨把苹果2011年的最佳应用Instagram也加入到这个大量使用django的榜单中。