我正在用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万的用户
目前在Django上构建的“最大”站点是什么?(我主要通过用户流量来衡量规模)
在美国,是Mahalo。我听说他们一个月要处理大约1000万份。现在,在2019年,Mahalo由Ruby on Rails支持。
在国外,Globo网络(巴西的新闻、体育和娱乐网站网络);Alexa将它们排在全球前100名(目前大约排在第80位)。
其他著名的Django用户包括PBS、国家地理、探索、NASA(实际上是NASA内部的许多不同部门)和国会图书馆。
Django能处理每天10万用户,每个用户访问站点几个小时吗?
是的——但前提是您编写了正确的应用程序,并且有足够的硬件。Django不是灵丹妙药。
像StackOverflow这样的网站可以在Django上运行吗?
是的(但请参见上文)。
在技术方面,很容易:请参阅soclone。在流量方面,compete将StackOverflow固定在每月100万次以下。我能说出至少十几个流量超过SO的Django站点。
"What are the largest sites built on Django today?"
There isn't any single place that collects information about traffic on Django built sites, so I'll have to take a stab at it using data from various locations. First, we have a list of Django sites on the front page of the main Django project page and then a list of Django built sites at djangosites.org. Going through the lists and picking some that I know have decent traffic we see:
Instagram: What Powers Instagram: Hundreds of Instances, Dozens of Technologies.
Pinterest: Alexa rank 37 (21.4.2015) and 70 Million users in 2013
Bitbucket: 200TB of Code and 2.500.000 Users
Disqus: Serving 400 million people with Python.
curse.com: 600k daily visits.
tabblo.com: 44k daily visits, see Ned Batchelder's posts Infrastructure for modern web sites.
chesspark.com: Alexa rank about 179k.
pownce.com (no longer active): alexa rank about 65k.
Mike Malone of Pownce, in his EuroDjangoCon presentation on Scaling Django Web Apps says "hundreds of hits per second". This is a very good presentation on how to scale Django, and makes some good points including (current) shortcomings in Django scalability.
HP had a site built with Django 1.5: ePrint center. However, as for novemer/2015 the entire website was migrated and this link is just a redirect. This website was a world-wide service attending subscription to Instant Ink and related services HP offered (*).
"Can Django deal with 100,000 users daily, each visiting the site for a couple of hours?"
Yes, see above.
"Could a site like Stack Overflow run on Django?"
My gut feeling is yes but, as others answered and Mike Malone mentions in his presentation, database design is critical. Strong proof might also be found at www.cnprog.com if we can find any reliable traffic stats. Anyway, it's not just something that will happen by throwing together a bunch of Django models :)
当然,还有更多感兴趣的网站和博主,但我必须在某个地方停下来!
一篇关于使用Django构建高流量网站michaelmoore.com的博文,将其描述为排名前10,000的网站。Quantcast数据和compete.com数据。
(*)编辑的作者,包括这些引用,曾经在该项目中作为外包开发人员工作。