可扩展的图像服务网络应用程序

0 投票
6 回答
803 浏览
提问于 2025-04-15 11:52

我开始做一个网页应用,这个应用需要处理很多图片。我选择了PHP,因为它是最简单、最便宜的托管方式。我之前用过.NET框架,也对Python很熟悉。

但是现在我对PHP一点也不熟悉,所以我决定用一些对我来说更简单的东西。

有没有人能帮我看看.NET框架或者Python(目前我觉得web.py不错)在处理大量图片和每秒大约200个请求的情况下,哪个更有优势呢?

另外,如果有人能推荐一个合适的托管服务,那就太好了。

编辑:

抱歉让大家困惑了。这里的图片处理是指用户可以上传图片,这些图片会存储在文件系统中,而他们的相关信息会保存在数据库里。

而图片处理则是指我需要为这些图片创建缩略图,这些缩略图会在应用中使用。

6 个回答

0

我还想推荐你看看 MogileFS。它是一个分布式文件系统,可以在基于Unix的操作系统上运行。我知道digg网站用它来存储用户的头像图片。

这个系统是由同一团队开发的,他们还做了memcached和live journal。

1

请购买Schlossnagle的书,《可扩展的互联网架构》

你不应该通过Python(或者PHP或.Net)来提供图片,而应该使用Apache和Squid来处理。同样,Javascript和CSS文件也是静态资源,Python根本不应该去碰它们。

你只需要处理HTML部分的内容。

顺便说一下,这就是像Django这样的框架所采用的架构。静态资源是在Python之外处理的,而Python负责验证和HTML部分的处理。

实际上,你会花很多时间在Squid和Apache上调试,以确保一切运行得更快。如果你限制Python的职责,它(以及Django框架)其实是足够快的。

1

之前提到过,很多开发平台都可以用,关键在于你怎么处理内容的缓存。

如果你对Python比较熟悉,我推荐你使用Django。这个框架有很多开发者在用,还有不少大型应用和网站都是基于它搭建的。

Django内部支持通过memcached来进行缓存。你可以根据自己的需求,灵活地设置想要缓存的内容和方式,而且大部分缓存的设置都可以在你的Django应用里进行调整(我觉得这点特别好,尤其是在使用一些第三方托管服务时,因为那样我对系统的控制权有限)。

这里有一些可能对你有帮助的链接:

有很多托管公司提供共享和专用的托管计划。我建议你访问http://djangohosting.org/,看看哪个托管服务最适合你的需求。我个人使用过WebFaction,他们的服务让我非常满意。

撰写回答