jquery文件上传插件uploadify 讲解

 

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。
1.名词解释:
tracker服务器:中文叫做跟踪器,主要做调度工作,在访问上起负载均衡的作用。(tracker告诉WWW,与哪台Storage通讯)
storage服务器:中文叫做存储器,主要用来存储数据,它上面可以建立节点(或者叫卷,组)
tracker和storage都可以由多台服务器组成,storage的各位服务器数据都是同步的,这是实现负载均衡的前提。

 

 

 

 

2.上传流程:

 

 

 

 

    FastDFS file upload 上传文件交互过程:
    1. client询问tracker上传到的storage,不需要附加参数;
    2. tracker返回一台可用的storage;
    3. client直接和storage通讯完成文件上传。
    
    FastDFS file download 下载文件交互过程:
    1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
    2. tracker返回一台可用的storage;
    3. client直接和storage通讯完成文件下载。
    
首先客户端 client 发起对 FastDFS 的文件传输动作,是通过连接到某一台 Tracker Server (跟踪器)的指定端口来实现的,
Tracker Server 根据目前已掌握的信息,来决定选择哪一台 Storage Server (存储器),
然后将这个Storage Server 的地址等信息返回给 client,
然后 client 再通过这些信息连接到这台 Storage Server,将要上传的文件传送到给 Storage Server上。


 client向tracker发一个HTTP的GET请求,并把它自己的信息放在GET的参数中;
这个请求的大致意思是:我是xxx(一个唯一的id),我想下载yyy文件,我的ip是aaa,我用的端口是bbb...
tracker对所有下载者的信息进行维护,当它收到一个请求后,首先把对方的信息记录下来
(如果已经记录在案,那么就检查是否需要更新),然后将一部分

(并非全部,根据设置的参数已经下载者的请求)参与下载同一个文件(一个tracker服务器可能同时维护多个文件的下载)的下载者的信息返回给对方。

Client在收到tracker的响应后,就能获取其它下载者的信息,那么它就可以根据这些信息,与其它下载者建立连接,从它们那里下载文件片断。

 


FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器(tracker)主要做
调度工作,就像公交车站里面的调务员一样,它负责通过负载均衡选出最优的存储节点(storage)。存储节点(storage)顾名思义就是负责存储、
数据同步、数据的操作的一个服务,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的meta data进行管理。
所谓文件的meta data就是文件的相关属性,以键值对(key value pair)方式表示,
如:width=1024,其中的key为width,value为1024。文件meta data是文件属性列表,可以包含多个键值对。



3.架构简析、特点
FastDFS 是包括一组 Tracker Server 和 Storage Server 的。
Tracker Server 与 Storage Server 之间不直接通信,其基本的信息由配置文件在系统启动加载时获知。
Storage Server 是分成多个 Group,每个 Group 中的Storage 都是互相备份的,
就是说,如果 Group1 有 Storage1、Storage2、Storage3,其容量分别是100GB、100GB、100GB,那么 Group1 的存储能力是 100GB,
而不是 300GB,这就是互相备份的意思。
进一步说,整个 Group 的存储能力由该组中该储能力最小的 Storage 决定。
多个 Group 之间的存储方式,可以采用 round robin(轮训)、load balanced(负载均衡)或指定 Group 的方式。
 FastDFS 架构中,数据最终是与一个 available (有空的、可获得的) Storage Server 进行传输的。
 FastDFS的特点包括(1)高可靠性:无单点故障;(2)高吞吐量:只要 Group 足够多,数据流量是足够分散的。
 (3)适用于小文件存储,因为 FastDFS 不回对文件进行分块。
 因为文件比较小(比如普通级别的图片类应用,文件最大就在几个MB的量级),一来没有必要分块, 二来分块会加重服务器的工作量。
 但是,如果把 FastDFS 应用于大文件存储的场景,可能这一特点就会变成缺点。


需要说明的是,client为使用FastDFS服务的调用方,client也应该是一台服务器,它对tracker和storage的调用均为服务器间的调用。


以上讲解参考:http://blog.csdn.net/mr_smile2014/article/details/52095966
https://zhidao.baidu.com/question/9124794.html
http://www.cnblogs.com/lori/archive/2013/05/21/3090134.html
https://www.oschina.net/p/fastdfs

 

 

http://blog.csdn.net/poechant/article/details/6996047 

 

 

使用样例见 ;

jQuery上传插件Uploadify使用Demo、本地上传(ssm框架下)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

POJ 1651 Multiplication Puzzle(类似矩阵连乘 区间dp)

传送门:http://poj.org/problem?id1651 Multiplication PuzzleTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 13109 Accepted: 8034Description The multiplication puzzle is played with a row of cards, each containing a single positive integ…

25--最后一个单词的长度

文章目录1.问题描述2.代码详情1.问题描述 给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 如果不存在最后一个单词,请返回 0 。 说明&…

MySQL 企业监控器 2.3.10 正式版发布

Oracle于近日发布了 MySQL 企业监控器 2.3.10 正式版。 MySQL企业监控器主要用于实施对数据库进行监控和管理。通过它,数据库管理员不但可以获得高级的数据复制和数据库监控功能,同时还可以简化安装流程。而且,无论是对于MySQL企业版&#xf…

Docker 跨主机网络方案分析

PS:文章首发公众号,欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家。 上篇文章介绍了容器网络的单主机网络,本文将进一步…

java中为什么使用上转型和下转型

为什么使用上转型?因为当一个父类有很多子类,子类都重写了父类的方法并加以使用。这时候,如果要在之前代码让你用其他子类来实现,就变得很简单,只需要把A a new B();换成A a new C();(假设B和C都继承了A&…

session和cache的区别

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 以前实现数据的缓存有很多种方法,有客户端的Cookie,有服务器端的Session和Application。 其中Cookie是保存在客…

第四个

。 转载于:https://www.cnblogs.com/wxy2000/p/9657823.html

26-- 转换成小写字母

文章目录1.问题描述2.代码详情1.问题描述 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。 示例 1: 输入: “Hello” 输出: “hello” 示例 2:…

java守护线程和用户线程的区别

Java中的线程可以分为两类,即用户线程和守护线程。用户线程是为了完成任务,而守护线程主要是为其他线程服务。 守护线程的唯一用途是为其他线程提供服务。守护线程会随时中断,因此不要在守护线程上使用需要释放资源的资源,如输入输…

初学duboo+zookeeper

看了很多相关资料,其实都没有自己动手试一次印象更深刻一些。找了很多教程,下工具,花了几个小时终于让程序跑起来了,下面说下步骤:1.java环境也就安装jdk,我使用的是1.7版本,jdk安装就不在这复述…

Fedora 17 Beta 版发布

Fedora团队今天发布了Fedora 17 Beta版本,这是正式版本发布前的最后一个重要的里程碑版本。据该团队介绍,正式版将在今年5月发布,将主要修复Beta版中发现的关键性bug。针对普通用户的桌面改进: 采用GNOME 3.4,提升了用…

27--字符串相加

文章目录1.问题描述2.代码详情1.问题描述 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包含任何前导零。 你不能使用任何內建 BigInteger 库&…

[转] 一文弄懂神经网络中的反向传播法——BackPropagation

在看CNN和RNN的相关算法TF实现,总感觉有些细枝末节理解不到位,浮在表面。那么就一点点扣细节吧。 这个作者讲方向传播也是没谁了,666~ 原文地址:https://www.cnblogs.com/charlotte77/p/5629865.html 最近在看深度学习…

java线程组

线程组 线程组是Java线程编程所持有的概念。在Java中,线程组是指java.lang.ThreadGroup类的对象,每个线程都隶属于唯一的一个线程组,这个线程组在线程创建时指定并在线程的整个生命周期内都不能更改。可以通过调用包含ThreadGroup类型参数的T…

FreeBSD 8.3 发布

近日,FreeBSD开发团队放出了8.x稳定分支的8.3版本。此次发行的版本将支持amd64、i386、pc98和 sparc64等处理器类型。FreeBSD是一种类UNIX操作系统,但不是真正意义上的 UNIX 操作系统,它是由经过 BSD、386BSD 和 4.4BSD 发展而来的 Unix 的一…

Java中四种访问权限总结

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 一、Java中有四种访问权限, 其中三种有访问权限修饰符,分别为private、public、protected,还有一种不…

28--仅仅反转字母

文章目录1.问题描述2.代码详情1.问题描述 给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。 示例 1: 输入:“ab-cd” 输出:“dc-ba” 示例 2&…

Moving Average

移动平均算法Demo #!/usr/bin/python2.7 # Fetch data from BD and analyse.import json import urllib import traceback import numpy as np # import pandas as pd import matplotlib.pyplot as plt #from scipy import statsdef fetch_raw_data(url):try:response urllib.…

【前端工程师手册】JavaScript作用域拾遗

【前端工程师手册】JavaScript作用域拾遗 昨天总结了一些作用域的知识【前端工程师手册】JavaScript之作用域,但是发表完发现忘记了一些东西,今天拾个遗。 昨天说到了JavaScript中没有块级作用域,其实在es6中是有的。 es6中的块级作用域 先举…

游戏开发中的数据表示

声明:本文内容源自腾讯游戏学院程序公开课_服务端 一、数据表示的基础 什么是数据表示? 数据是信息的载体。 数据表示是一组操作,可以描述、显示、操作信息。 数据表示的要素 IDL - 接口描述语言 IDL是用来描述软件组件接口的一种计算机语言。…