海量图片存储策略

一、常规图片存储策略

常规的一般400G下面的图片存储能够採用比較传统的分文件夹的形式

比如文件夹层级为  年份/行业属性/月份/日期/用户属性

有几个比較重要的原则就是

1、单个文件夹下的文件个数不要超过2000个,多了寻址较慢,你在linux下ls就能看到数量太多的时候的效果了

2、文件夹层级结构不要太深,这样server处理寻址较慢


二、海量图片存储策略

1、核心难点

(1)海量的意思就是图片的数量级别是上亿--光是我们建立索引就玩不转,没那么牛的库存储

(2)图片总大小是依照T计算的--单个节点肯定支持不了

(3)图片訪问非常easy有长尾效应--就是没有所谓的热点


2、解决方式

(1)、存储方案

採用分布式随即的方式将一些小文件存放到分布式集群环境中,用hash的方式来记录位置(通常是先hash,然后确认存储位置)。将位置直接作为文件名

 计算哈希的常见方法: hash(key)%n  =》大致的物理位置

分布式存储常见方案:hdfs,tfs....

(2)、訪问方案(如果我们用apache)

硬訪问

直接让apache依据文件名称字找到指定文件存放位置,读取文件流

软訪问:

直接用apache的rewrite这个功能,将文件读取




原文地址:https://www.cnblogs.com/lcchuguo/p/4064872.html