关于服务器端大文件的存储方式设计的讨论
由于业务需要,服务器端有一些大的文件,大小为2-3M,比如MP3文件,数量大约1000-2000。对于并发访问的处理有以下几种方式进行文件的存储。
1、文件系统 以目录的方式存储。
2、数据库存储 将大文件直接存于数据库中
3、内存缓冲(结合文件系统或者数据库存储)将访问过的的文件以一定的方式存于内存缓冲区中,定时清空(对于每个session采用clone,避免线程死锁,毕竟传这么大的东东用时不少啊)。
优点:
对于方式1,存储简便,方便维护。
对于方式2,并发控制的比较好。
对于方式3,可控性更强,速度较快。
弊端:
对于方式1,容易发生文件的死锁。
对于方式2,增大数据库容量,增加检索时间。
对于方式3,可能发生线程的死锁,占用内存较多。
如果并发访问量很高,假设为1000个session同时访问一个资源,不知道那种方式更好一些。
能力有限,小弟仅能想到这三种方式,不知道是否有其它更好的解决办法。像华军那样的下载网站不知道是怎样解决这个问题的,请达人指教。