抛砖引玉
一个简单的可扩展的分布式图片存储及搜索服务思路,具体执行有待完善
参与者:
文件服务器:多个,提供存储功能,以及上传接口,以及访问服务
文件资源管理服务:提供文件服务器地址账号管理,图片元信息管理,存储状态管理(空间,访问频率等),文件存储通知等功能
数据库、索引:存储上述信息, 生成索引,提供搜索服务
流程简介:
1.图片发布者(可以是后台或爬虫等程序)告知管理服务器要上传图片
2.管理服务器根据文件服务器的存储状态(比如是否正常,空间大小,访问频率等)分配文件服务器地址及账号
3.图片发布方收到分配的图片服务器,执行上传服务
4.文件服务根据文件命名规则保存图片,保存成功后通知管理服务器
5.管理服务器记录图片地址,大小,名称,编号,描述等信息(如果使用搜索引擎,还要索引程序生成增量或定时全量索引)
6.业务端根据图片名称或其他信息向管理服务或独立的搜索服务进行搜索,返回地址列表
7.如果是web站点访问图片,则可以根据规则直接生成图片地址直接访问文件服务器
管理服务器与文件服务器之间需要维护心跳,用于监听文件服务是否正常
增加状态程序定时收集空间信息,同时文件服务收到访问请求则向改程序发出通知,状态程序定时向管理服务汇报上述状态信息
待补充与扩展:
管理服务的详细功能,表,索引等服务设计待补充
文件服务的存储方式和访问服务(如apache,nginx等)
管理服务的备份