分为:client客户端、trancker调度端、storage数据端
#上传
客户端先把文件的md5值计算和文件的大小计算后请求trancker,获取分配进行存储的storage的ip和端口(上传地址)
trancker根据维系的storage来分配空闲的服务器,根据每一台storage存储20mb来计算。然后把这个文件id
与分配的每一个storage及大小存储到记录表中
文件hash值:[
0-20:192.168.11.11:2689,
20-40:192.168.11.22:2689
]
然后把这个记录对象返回给客户端
客户端然后遍历获取的storage的ip和端口,进行按照对应的块范围进行上传
storage接收文件流进行存储
客户端全部上传完后,返回给调用端文件id(即文件hash值)
#下载
客户端先根据文件id,请求trancker服务端
trancker服务器根据id,到记录表中获取对应的记录对象,并返回给客户端
客户端得到对应记录对象,遍历请求每一个storage的ip和端口,进行下载文件
然后把每一块文件进行按照对应块位置进行合并
客户端负责对文件的分块上传到不同的storage
客户端负责从不同的storage中下载文件后,合并
对于trancker和storage的高可用先不实现
线程可以后期采用线程池
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
ctjdfs是由java语言开发的一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。
资源推荐
资源详情
资源评论
收起资源包目录
ctjdfs-master.zip (20个子文件)
ctjdfs-master
ctjdfs-server
pom.xml 2KB
src
main
resources
server.properties 629B
java
com
caitaojun
ctjdfs
utils
H2DbHelper.java 5KB
model
StorageFileInfo.java 1KB
StorageFileInfoNode.java 673B
StorageServerModel.java 861B
system
SystemConstant.java 1KB
server
OnLineStorageServers.java 531B
LoadServer.java 3KB
StorageServer.java 6KB
TrackerServer.java 12KB
pom.xml 2KB
LICENSE 10KB
设计.txt 1KB
ctjdfs-client
pom.xml 3KB
src
main
java
com
caitaojun
ctjdfs
client
CtjDfsClient.java 7KB
model
DownloadFile.java 668B
StorageFileInfo.java 1KB
StorageFileInfoNode.java 468B
.gitignore 317B
共 20 条
- 1
资源评论
- xi_qiao2023-10-29资源很赞,希望多一些这类资源。
- m0_657798842024-04-01资源有一定的参考价值,与资源描述一致,很实用,能够借鉴的部分挺多的,值得下载。
Java程序员-张凯
- 粉丝: 1w+
- 资源: 6649
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功