公司为了好几个产品间的数据同步与共享,要求产品部做出个方案来,对于这个问题,要满足两个条件:1 应用集群2 多机集群,所以针对多机应用集群的上载文件处理可以采用以下几种方式。
1. 存入数据库
将上载的文件存入数据库可以很好解决这个问题,目前主流数据库对大字段都有很好的支持,如oracle等。
应用范围:集群中的各个应用共用一个数据库(或数据库集群),对于文件的读取则不再有任何问题。
缺点:1. 如果不同的应用对数据的处理量较大,则存库的内容就会导致数据库的数据量非常大,数据库的开销较大,影响整个应用的性能。
2. 对于应用集群共用一个库,不是很现实,尤其是那些有自己应用系统特殊权限的,对库的控制较严。
2. 采用共享目录
设置一个共享目录,将上载文件存储在这个共享目录中,集群中的各个应用均访问这个共享目录即可。
对于共享目录,现在有比较成熟的技术,如NFS。
独立的文件服务器
把上传下载的部分独立成web系统,对不同的系统应用提供单独的接口。
应用范围:需要自己开发组件,控制上传与下载。可以利用socket、FTP协议与服服务器端做连接。
优缺点:
1. 自己写服务端与客户端组件。纯socket通信、或者是借用mina框架,并发性、性能不好不一定有很好的效果。
2. 利用开源的组件搭建服务端。只需写客户端。 像FTP服务器,本身就支持大文件的数据传输。自己开发客户端,但是对上传下载的控制,不好处理。对第三方组件的依赖性,第三方组件对系统环境的依赖性等都比较繁琐。
3. 第三方开源的文件服务器。例如 淘宝的开源文件系统 :TFS。以及像 fastFS。Hadoop的hdfs等等。其都是建立在特定的应用中。TFS就是正对小文件的海量存储。虽然在性能、集群、容灾方面都有不存的表现,但是对于不同的应用,不一定满足自己的应用。
从以上角度来看,共享目录还是中小企业比较实用并且有效的方法。大家有什么看法,可以继续探讨。技术上,方案上,随便说。。。
分享到:
相关推荐
weblogic11g多机集群配置
C#多服务器多文件上传实例,并发,集群对考虑在内
Redis集群配置文件,包含了三个主节点,三个从节点的配置文件,该配置是在docker中运行,有完整的docker-compose.yml文件,只要修改映射的宿主机的路径为你自己的路径。然后直接docker-compose up既可以完成环境启动...
fluent 集群多机并行计算
kafka集群 zookeeper集群 配置文件
tomcat集群所以的配置文件
centos7的redis集群配置文件
有个小技巧,官网上下不动的东西,点开链接审查元素,将链接复制下来到迅雷下载一般就可以很快下载啦 包括下列文件:redis-4.0.0.gem redis-trib.rb Redis-x64-3.2.100.zip rubygems-2.7.1.zip rubyinstaller-2.3.3-...
通过配置文件实现连接单机redis或集群redis demo,实现开发时使用单机redis,线上使用集群redis
MSCS+FailSafe 双机集群做HA 小结
weblogic多机集群配置文档
计算机体系结构多处理机与集群PPT,及动画
Hadoop集群机的安装配置与应用小结
redis集群所有文件,批命令,redis-trib.rb,redis-3.2.2.gem 集群搭建文章链接:https://blog.csdn.net/qq_27026603/article/details/79911129
docker-compose 方式部署和启动nacos-server 单机和集群的所需文件。 (去除了集群模式下200M+的mysql初始化数据库文件内容,以及 nacos-server的日志文件等内容,这不影响启动) 相关文章地址: ...
文件为原声zookeeper安装包,内置了3单机伪集群zookeeper配置文件 具体的使用方式 bolg:https://blog.csdn.net/weixin_37352094/article/details/85053040
Hadoop HA 集群搭建所需要的配置文件:core-site,hdfs-site,mapred-site,yarn-site四个xml文件和一个slaves文件
ClickHouse 集群配置文件.rar
完全分布式集群搭建需要的四个配置文件 HA集群搭建需要的主要两个配置文件 配置时间同步服务器的ntp.conf文件