我开始研究Web应用程序。这个应用程序需要大量的图像处理。我从PHP开始,因为这是最容易和最便宜的东道主。我已经在以前的一些应用程序中使用了.NET框架,我对Python非常熟悉。
但我现在不习惯使用PHP,所以我决定为我使用更简单的东西。
任何人都可以帮我理解.NET框架或Python(目前web.py看起来对我好) 考虑到大量的图像处理,让我们说每秒大约有200个请求,它有其他优势吗?
如果有人能为他们中的任何一方建议合适的主持人,我也会感激。
编辑:
很抱歉这个混乱。通过图像处理,我的意思是允许应用程序的用户上传将存储在平面文件系统中的图片,同时他们的条目在数据库中。
通过图像处理,我的意思是我需要为这些图像创建缩略图,这些缩略图也将在应用程序中使用。
答案 0 :(得分:1)
请购买Schlossnagle的书Scalable Internet Architectures。
你不应该从Python(或PHP或.Net)提供图像,而是从Apache和Squid提供。 Javascript和CSS文件也是如此 - 它们是静态媒体,Python永远不应该触及它们。
您应该只处理交易的HTML部分。
这是BTW,是Django之类的结构。静态媒体在Python之外处理。 Python处理验证和处理的HTML部分。
事实证明,你会花费大量的时间来解决Squid和Apache试图让事情快速发展。如果你限制他们的职责,Python(以及Django框架)足够快。
答案 1 :(得分:1)
如前所述,任何数量的开发平台都可以使用,这实际上取决于您缓存内容的方法。
如果您对Python感到满意,我建议Django。在框架上运行着一个大型开发社区和许多大型应用程序和站点。
Django通过使用memcached在内部支持缓存。您可以非常自定义要缓存的方式和内容,同时能够在实际的Django应用程序中保留缓存的许多设置(我在使用第三方托管服务时发现这很好,我没有完全控制系统)。
以下是一些可能有用的链接:
有许多托管公司提供共享和专用托管计划。我会访问http://djangohosting.org/以确定哪个主机可能最适合您的需要。我已经使用WebFaction了很多,并对他们的服务非常满意。
答案 2 :(得分:0)
如果您在提供图像时需要性能,则必须采用FaceBook方法“永不转到磁盘,除非绝对必要” - 意味着在图像服务器和最终用户之间尽可能多地使用缓存。有许多产品可以帮助您商业和免费,包括正确配置您的网络服务器 - 谷歌,看看哪些适合您的成本和平台。
答案 3 :(得分:0)
根据您的编写,.NET或Python将是您的不错选择。就个人而言,我会选择Python。为什么呢?
说实话你的选择并不重要 - 只需选择一个你觉得舒服的并坚持使用它。你提到了web.py - 这个网站是用web.py制作的:colr.org - 它是制作的1304行代码,不包括外部库。
答案 4 :(得分:0)
我认为切换语言不会对您的问题有多大帮助,而您最初选择的架构只适用于少量数据。我建议你访问http://highscalability.com,现在是时候开始研究大家伙如何扩展他们的应用程序了。
答案 5 :(得分:0)
我还建议查看MogileFS。它是一个在基于Unix的操作系统上运行的分布式文件系统。我知道digg用它来存储他们的头像图像。
这是来自创建memcached和live journal的人。