4

对于我的 Django 网站,我想:

  1. 接受用户提交的图片
  2. 从这些图像生成缩略图
  3. 将原始图像和缩略图放在单独的多个服务器上,这些服务器专用于提供图像

我需要多个独立的服务器来提供图像/缩略图,以确保我有足够的 IO 性能。

构建这样的分布式图像服务系统的最佳方法是什么?有什么开源软件有用吗?

谢谢。

4

1 回答 1

4

这听起来像是分布式任务队列的工作。我个人最喜欢的是 Beanstalkd b/c,它非常轻巧且易于使用。

服务器:https
://github.com/kr/beanstalkd 客户端库:https
://github.com/PeterScott/beanstalkc Django 助手:https ://github.com/jonasvp/django-beanstalkd

它的工作方式是这样的:
1. 文件被上传并存储在本地
2. 通过上传视图创建作业并放入 beanstalk 管
3. Beanstalk 工人正在观察管子工作,他们抓住了新的工作
4.工作人员可以创建缩略图并将其分发到您需要的任意数量的服务器

美妙之处在于,您可以根据需要让尽可能多的工人从管子中喂食。因此,如果你落后了,只需解雇更多的工人。工人可以在同一台机器上,也可以在许多不同的机器上,它们都可以正常工作。

于 2011-04-11T05:26:32.517 回答