一、单机时代:直接放于项目中(代码或数据库)
优点:便利
缺点:文件代码耦合,流量大,静态资源占用影响正常业务进行
适用场景:前后端一体且存储文件量小,性能要求低。
二、独立文件服务器:如Apache FtpServer搭建
优点: 1、独立存储,更方便做扩容、容灾和数据迁移
2、方便做图片访问请求的负载均衡,方便应用各种缓存策略(HTTP Header、Proxy Cache等),也更加方便迁移到CDN。
缺点:单机存在性能瓶颈,容灾、垂直扩展性稍差
适用场景:单体,性能要求高
三、分布式文件系统:如fastDfs、MinIO
优点: 1、高伸缩性:可以根据业务需要灵活地增加或缩减数据存储以及增删存储池中的资源,而不需要中断系统运行
2、高可用性:文件系统可用性和数据的完整和一致性,单节点宕机时可自动切换至另一台备份机
3、高性能:负载均衡到高拓展的集群,打破单机性能瓶颈
缺点:系统复杂度稍高,需要更多服务器、成本高
适用场景:微服务,性能、伸缩性和可用性要求非常高