对于我的 Django 网站,我想:
- 接受用户提交的图片
- 从这些图像生成缩略图
- 将原始图像和缩略图放在单独的多个服务器上,这些服务器专用于提供图像
我需要多个独立的服务器来提供图像/缩略图,以确保我有足够的 IO 性能。
构建这样的分布式图像服务系统的最佳方法是什么?有什么开源软件有用吗?
谢谢。
对于我的 Django 网站,我想:
我需要多个独立的服务器来提供图像/缩略图,以确保我有足够的 IO 性能。
构建这样的分布式图像服务系统的最佳方法是什么?有什么开源软件有用吗?
谢谢。
这听起来像是分布式任务队列的工作。我个人最喜欢的是 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.工作人员可以创建缩略图并将其分发到您需要的任意数量的服务器
美妙之处在于,您可以根据需要让尽可能多的工人从管子中喂食。因此,如果你落后了,只需解雇更多的工人。工人可以在同一台机器上,也可以在许多不同的机器上,它们都可以正常工作。