ajax之如何重构 Django 站点以使其可以扩展
根据以下 Stack Overflow 问题:Does Django scale? Django 非常适合预计每天/每月有数千名用户的 Web 应用程序,但要实现这一点,您必须拥有正确的设计。
现在我的场景如下:
我刚刚加入一家初创公司,担任技术主管/首席开发人员,虽然我有 3 年的 Django 经验,但我从未将它用作大型应用程序。我参与的最新大型应用程序使用 Zope,并依赖 SQL Server 来处理缓存等(我认为这是可怕的做法)。考虑到这家初创公司成立 6 个月后现在只有大约 20,000 名用户,并且考虑到他们在雇用我的同时还聘请了一名营销专家,我可以预见(或者至少希望预见到)一个增长机会.许多现有的 Django 代码需要重构;即使用静态 html 表单而不是 ModelForm 等。
我的问题是:在重构此应用程序时,我应该遵循哪些设计模式才能正确完成它,以便我们可以扩展到每月 100,000 到 500,000 名用户?我应该注意哪些问题?在模型设计方面,什么是可扩展模型设计?在数据库支持方面,什么样的数据库设置可以帮助我实现这种可扩展性?在负载均衡方面,什么样的架构适合做负载均衡?
我假设开箱即用的 Django 不会实现这一点,我不想发现自己处于需要聘请可伸缩性专家的情况......我也想知道什么我可以使用一些负载测试技术/工具来衡量当前的性能/可扩展性吗?我只和他们在一起几天,所以我还不确定生产环境,所以如果我觉得我需要改变生产环境,有什么好的选择(云解决方案),那合适但负担得起吗?
编辑:他们似乎也在为所有事情使用 Ajax,这让我很担心。假设我不能说服他们改变这一点,有哪些好的 Ajax 技术库(我知道 django-dajax/dajaxice)可以使用并且仍然可扩展。
谢谢,
山姆
请您参考如下方法:
不幸的是,您的问题中没有很多细节。 Google 搜索将产生大量关于扩展 django 的信息。
http://www.morethanseven.net/2011/06/30/Django-performance-1-measuring-performance.html
此链接提供了大约 5 种不同的方法来衡量不同的性能指标。由于我无法告诉您有关如何扩展您的应用程序的具体细节,这里有一些适用于任何网站的通用原则。
- 确保静态媒体是由您的网络服务器提供的,而不是由 django 提供的
- 确保对 EXPLAIN 至关重要的所有内容进行分析。
- 尽可能缓存所有内容。内存快如闪电,django 使其易于实现。
- 小心模板中的 django ORM 问题。使用 django-debug 工具栏确保您在遍历结果集时不会无意中进行多个查询。
- 对于数据库,请确保您的数据已规范化。
- 最好使用 CDN,并确保您的网络服务器和数据库服务器位于不同的机器上。
不要过早优化!! Django 可以开箱即用地处理很多事情。我不会担心 ajax 或模型表单或任何东西,除非你发现它们是你发展网站的特定瓶颈。我相信与性能同样重要的是确保您的站点是模块化的、在版本控制下并且易于移动的。这将有助于开发,当您发展到足够大时,您可以立即推出新机器。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



