关于静态资源
第一步:使用静态资源的合并压缩等前端优化手段
第二步:使用CDN和云
第三步:动静分离,将静态图片,js,css存放到单独的域名。
带来好处:
(1)使用单独域名,浏览器不会把主域名下的 cookie 传给该域,减少了网络开销,一定程度提高了页面加载速度。
(2)将Web应用程序中静态和动态的内容分别放在不同的 Web 服务器上,有针对性地处理动态和静态内容,从而达到性能的提升。
面临问题:
动静分离分离后,数据内容以几何级数增长,尤其是那些小文件,几K到几百K不等,数量巨多,传统的文件系统处理起来很是吃力,面临以下问题:
(1)磁盘IO过高
海量文件检索效率低,由于现有的存储系统无法有效管理海量小文件,并且在单个目录下存放文件的数量有一定的限制,一旦文件数到达了一定规模之后,文件的检索速度就急剧下降。当前用户只能通过多级目录来组织存放大量的小文件,随着目录深度的增加,文件的检索开销进一步增大,检索效率随之下降(大量的磁盘寻址)。
(2)备份困难
(3)单点问题,容量和读写无法水平扩展,还存在故障的可能。
现有的存储系统一旦出现连续的磁盘故障或者服务器失效的情况,将会立即中断应用的读写过程,严重的甚至造成数据丢失。
小文件的备份速度极慢,而备份大量小文件将会耗费大量的时间和系统资源。
用户在存储大量小文件时不得不采用了费时费力的方式,将文件复制多份到多套的存储系统中以提高安全性。
解决方案:
使用分布式文件系统(Distributed File System):指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。
优点:
(1)扩展能力: 是一个分布式文件系统最重要的特点。
(2)高可用性: 在分布式文件系统中,高可用性包含两层,一是整个文件系统的可用性,二是数据的完整和一致性。
(3)协议和接口: 分布式文件系统提供给应用的接口。
(4)弹性存储: 可以根据业务需要灵活地增加或缩减数据存储以及增删存储池中的资源,而不需要中断系统运行。弹性存储的最大挑战是减小或增加资源时的数据震荡问题。
(5)压缩、加密、去重、缓存和存储配额: 这些功能的提供往往考验一个分布式文件系统是否具有可扩展性,一个分布式文件系统如果能方便的进行功能的添加而不影响总体的性能,那么这个文件系统就是良 好的设计。存储配额就是可以为应用所能使用的存储空间进行配额限制,比如每一应用只能使用最大配额范围内的存储空间。
例如使用MongoDB分布式文件系统的静态资源方案:

每一步涉及到的具体技术选型问题需要具体问题具体分析
图片显示的时候可以等比例缩略图

浙公网安备 33010602011771号