实时图片处理系统架构设计与实现

发布: 2013-06-28 23:08

1) 需求

对于当前的互联网,图片的应用非常广泛。

无论从基本的论坛到SNS,从B2B到B2C的电商网站,

或者到纯图片浏览网站,都离不开图片这种传达信息丰富的媒介。

2) 功能特征

对于这些需求作整理,一般要求对图片做水印、缩略图、裁切、滤镜等功能。

3)原理

实时处理图片,只记录原图,请求来到之后根据参数处理为所需的效果图片。

无/微配置系统,把处理参数直接放在url中,由系统解析URL,提取处理参数。

原图安全,对于原图的访问,根据图片的文件名添加签名信息和token信息。

多样化存储后端,可以使用磁盘目录hash存储,或者使用分面式文件系统存储。

不同规模配置,对于小、中、大、超大规模图片处理的支持,使用不同的后端配置,运行于不同的规模模式。

结果缓存,对于已经处理完成的效果图片,使用静态缓存提高速度,减小实时处理的CPU压力。

url唯一化,对于带无用的、多余的参数的情况,作重定向到整理过的正规的唯一地址上。

4)架构

NAMP + haproxy + squid

网络结构:

haproxy --> squid1/squid2/squidxxx --> Nginx-PHP1/Nginx-PHP2/Nginx-PHPxxx-->MySQL

|

------------------------------

| |

disk1/disk2/diskxxx fastdfs

5)相关技术

opencv

gmagick


原文: http://qtchina.tk/?q=node/733

Powered by zexport