前几天有人讨论Python做的大型网站

2011-12-17 21:00:58 +08:00
 HowardMei
除了 http://www.v2ex.com/t/18508 提到的众所周知的
google youtube douban sourceforge yahoo delicious
还有 http://wiki.python.org/moin/OrganizationsUsingPython#Web_Development 上老掉牙的列表外,比较新的似乎有:
quora:
http://www.quora.com/Quora-Infrastructure/Why-did-Quora-choose-Python-for-its-development

disqus:(500 million visitors,用django,还有谁敢说django很慢?)
http://www.slideshare.net/zeeg/pycon-2011-scaling-disqus-7251315
http://www.slideshare.net/zeeg/continuous-deployment-at-disqus-pylons-minicon

reddit:
http://brainsik.theory.org/.:./2009/why-reddit-uses-python

digg:(python + java)
http://www.quora.com/High-Traffic-Websites/How-does-StackOverflow-serve-60MM-pageviews-with-5-servers-while-Digg-requires-500-servers-to-serve-200MM-pageviews

dropbox:
http://ontwik.com/python/pycon-2011-how-dropbox-did-it-and-how-python-helped/

其他中小网站在 http://www.djangosites.org 上也未必有列,估计多如牛毛.

还有哪些呢?大家补充吧。

语言其实真的不是问题,商业模式才是关键。
16236 次点击
所在节点    Python
20 条回复
HowardMei
2011-12-17 21:04:30 +08:00
HowardMei
2011-12-17 21:21:07 +08:00
ayanamist
2011-12-17 21:23:40 +08:00
说django慢是共识,那些用django不慢的都是hack的一塌糊涂的,你只能说他们用了django的代码组织形式而已。
HowardMei
2011-12-17 21:28:53 +08:00
先把数据库访问这个最大瓶颈解决掉才能怪django吧,disqus就搞了个单独的monkey patch:
https://github.com/disqus/django-db-utils
把database access解放出来,自己动手hack

用其他框架,很多东西要自己搭,还不保证没有问题隐患,花的时间不一定少于hack django
HowardMei
2011-12-17 21:31:28 +08:00
可惜他家开源的只是个小小的patch,不过问题是django模版什么的真是性能瓶颈么?
ayanamist
2011-12-17 23:57:50 +08:00
@HowardMei 其实到处都是性能瓶颈的……template很慢,orm很烂
lijia18
2011-12-18 00:12:48 +08:00
估计Disqus的Django改的只剩下url路由了。
mywaiting
2011-12-18 00:32:32 +08:00
赞 +1
CMGS
2011-12-18 00:36:13 +08:00
国内某山用django也就用django的request和response,还有url路由做gateway。。。
clc3123
2011-12-18 19:12:58 +08:00
Rails也是啊,你不hack,不动架构,不换组件,快不起来啊。
HowardMei
2011-12-21 00:20:11 +08:00
@ayanamist 可是目前看来发展最好的还是Django,想想在用户上万之前基本不用考虑性能问题,除非你用特别垃圾的服务器挑战自己的hack实力。舍不得花小钱的结果,就是把个系统搞得一塌糊涂,到处都是hack,最后维护成本飙升。成功的商业应用,服务器成本应该是占比微不足道的,人力成本才是大头。
ohhe
2011-12-21 00:44:27 +08:00
先上线再hack。据说Google刚上线的时候,page和Brin写的代码烂的一塌糊涂。
Ricepig
2011-12-21 00:46:42 +08:00
rails比django传说还要慢。。。

不过据说语言慢一点没关系,因为主要问题在数据库和io
lanwen2005
2011-12-21 00:53:42 +08:00
性能不是主要的问题,rails的好处就是结构灵活,重构容易,hack容易。除了那种上亿级别的没经历过我不敢说。

但是一般性互联网项目,把数据库跟缓存做好就能解决主要问题了。 数据库包括最基本的表结构设计(适当冗余),索引,使用各种内置orm时候注意sql的问题,有些可以直接用sql替代。

缓存主要是缓存方式,缓存策略。memcache来做。

nginx方面根据实际情况做配置优化(一些基本参数)

然后就是应用服务器的配置。

语言层面的那点性能差别真的完全可以忽略了。
Los
2011-12-21 02:23:35 +08:00
@clc3123 「Rails也是啊,你不hack,不动架构,不换组件,快不起来啊。」我不明白你说这句话的依据来自哪里?
huacnlee
2011-12-21 09:10:45 +08:00
楼上几位谁告诉你Rails慢啊!慢是因为你们不会用。完全无需hack之类的
clc3123
2011-12-21 20:52:27 +08:00
@huacnlee @Los

Ruby自身慢都是不争的事实了,再放在帖子预设的背景(大型网站,新浪?QQ游戏?)下,Rails不做一些调教肯定快不起来。

1.就说分库分表,我简单玩了下,rails确实有些方法可以调用,但却是十分的偏门。另外,在我使用的方法中,migration貌似不能用了,这得hack一下吧,但也可以手工管理数据库。

2.比如说有个开放平台什么的,你提供对外的用户验证什么的服务,那我想是不是应该从原先的rails中剥离User这一块,放到个单独的rack服务中来更快点?这算是动架构了吧?

3.如果为了团队开发协调之便,将不同类型业务分成多个rack或sinatra app挂载到主干rails中,你想为他们提供个统一的remember me功能和逻辑,你可以用warden,你可以说他是个gem,但我更加觉得这是人家hack后贡献出来的。

4.据我所知,rails 3.1之前有人已经做了http streaming,这算是动了rails的view组件吧?

5.用thin来做异步操作,但是我发现rails正常用法下有些不兼容(忘记具体场景了),sinatra没问题,我估计也要hack。。。

6.ruby-china用的mongoid,这个几乎把active-record扔掉了吧?

小弟才疏学浅,上面说的不对,请指教。其中有些纠结于定义和个人见解的言论,比如什么是hack,也请不要太认真了。
Los
2011-12-21 21:11:44 +08:00
@clc3123 照你的说法,估计我喜欢在系统中用上redis估计也是hack了,用上resque做异步任务也是改了架构了,使用metal或者多个rack做api输出之类的绝对是改了架构,用gem cells进行更细化的view输出管理绝对是没天理的将rails改得面目全非了,加上omniauth gem进行支持QQ微博,新浪微博,renren之类的登录将rails又hack了N多,但无法否认,达到你说的大型网站新浪,QQ游戏?之类的流量的站点我不敢保证以自己的技术水准能支持得起来,但谁在乎呢?那时候钱够多了。
huacnlee
2011-12-21 21:12:56 +08:00
@clc3123 这问题我觉得永远也撤不清的,你上面所说的 hack 定义和我想的的有很大的差距,在我看来你上面说这些 hack 都是必然的做法,随遍那个框架都需要怎么做。

另外纠正一点,ruby-china 用 Mongoid 纯粹和 ActiveRecord 没有多大关系,只是尝试而已,ActiveRecord 也是很快的。

总之我说阐述的意思是, Rails 并不慢!
weihuilee
2011-12-21 21:39:13 +08:00
一句话,谁用谁知道。 很多东西道听途说,是很不正确的方式。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/23722

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX