Слияние кода завершено, страница обновится автоматически
分为: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的高可用先不实现
线程可以后期采用线程池
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )