网站按功能进行分割,采用API方式对应用服务器提供服务
图片服务器,主要的作用是图片的保存、切图、缩放等操作。
后期网站访问量比较大的情况下,采用rsync,使多台图片服务器图片数据同步做集群。前台通过crc32计算调用不同的图片服务器,分摊图片服务器的压力。当数据量比较大的情况下也可以做分布式处理!
流程:
1 应用服务器接收到用户上传的图片
2 使用php的curl函数通过http把图片原封不动的传输到图片服务器。
3 通过参数,告诉图片服务器是否保留源图、切割缩放多大的尺寸等。
4 图片服务器接收到图片后,按参数进行图像操作,同时,把生成的图像放入年月日目录
5 file_md5得到图像文件的md5值,去数据库中搜索,看是否存在已有图片
6 如果存在的话,删除刚刚保存的文件,从数据库中直接返回真实的图片url地址(例:http://img.sm.com/2011/08/2/dfadfa.jpg)。
7 如果是新图片的话,把图片信息写入数据库 ,图像的md5做为ID号,通过hash id号分表保存。
8 图片服务器返回一个数组,数组中保存了处理了的图片的全部图片ID 及 url信息,借应用服务器使用及保存