TIM*_*MEX 5 python django web-services scalability
Django只允许您在settings.py中使用一个数据库.这会阻止你扩大规模吗?(数百万用户)
数据库不是你的瓶颈.
仔细检查您的浏览器.
对于每个HTML页面,您(平均)发送8个其他文件,其中一些可能非常大.这些是你的JS,CSS,图形等.
实际的性能瓶颈是浏览器请求这些文件并接受字节... ... ... ... ... ... ... ... ... ...
为了扩展,那么,这样做.
使用多个前端与纯软件解决方案(如wackamole)平衡. http://www.backhand.org/wackamole/
使用像squid这样的代理服务器来发送"其他"文件.它们基本上是静态的.这是工作的7/8完成下载到客户端的地方.不要吝啬这些权利.
使用多个并发mod_wsgi/Django来创建基于数据库查询的稀有动态HTML.确保mod_wsgi处于守护进程模式,以便您可以为Apache提供多个Django服务器.根据需要构建尽可能多的这些.它们都是相同的,都是平行的,并且都由Wackamole共享.
使用像MySQL这样的单个快速数据库来处理必须来自数据库的一些事情.MySQL将在其服务器上使用多个内核,因此它可以很好地扩展,而无需购买内存以外的任何其他内容.把它放在一个单独的盒子上,一个接一个地专用并调整到这个.
你会发现这很好地扩展.你会发现在squid,apache,Django守护进程和实际的数据库之间很好地共享了负载.您还会发现负载的每个部分(从无聊的静态部分到有趣的数据库查询)都是单独和同时发生的.
最后,购买Schlossnagle的书. http://www.amazon.com/Scalable-Internet-Architectures-Theo-Schlossnagle/dp/067232699X