在大家付出品种的时候,平日会遇见大块数据的难点(2M-拾0M),比方说保存报表中一w民用的ID号,他就像是七个肉瘤同样,存款和储蓄在服务器哪里都

认为恶心,放在redis,mongodb中呢,一下子你就能够收下报告警察方,因为内部存款和储蓄器满了。。。放在mysql吧???你还得创建三个text字段,和壹部分小字段混在一块,

或然有个别恶心,还得单独拆出来,还得怕某个sql不专门的学业的人挺喜欢select *
的,那速度挺恶心的哎。。。直接放到硬盘吧,没扩张性,你一T尺寸的硬盘又能

哪些,照样撑爆你,放在hadoop里面吧,对.net技师来讲,未有那么些缘分,好不轻便微软有五个.net
hadoop sdk,说丢弃就扬弃了,兼具以上各类特色,

末了目光只可以达到法斯特DFS上了。

 

一: FastDFS

     
fastDFS的原意是3个布满式的文件系统,所以大家能够上传种种小文件,包蕴这篇和我们提起的那几个一坨1坨的数额,同样你也足以认为是有的小文件,

上面小编画一下它的大约架构图:

4503.com 1

 

自个儿来解释一下:

一.
 fastDFS是循规蹈矩Group的样式对file举行分组存款和储蓄的,这里的group一你能够驾驭成C盘,group二驾驭成D盘,全数的数目都是在Group来划分的。

二.
 为了升高读取质量和热备份,我们把group一放到了两台机械上,大约只怕以为有一点浪费,对吧,事实就是那样。

3.
 为了加强扩充性,因为单机是有囤积上限的,那时候你能够再新建多少个group二,也便是D盘,放到此外机器上,那样您就扩容了,对啊。

四.
 trackerServer首要用于保存group和storage的片段情景消息,首要和client端进行互动,再次来到正确的storeage
server地址,这么些和hadoop的

     namenode其实是同叁个剧中人物的。

伍.
这里要留意的1个地方就是,client端在储存file的时候,要求报告trackerserver,你需求仓库储存到哪3个group中,譬喻group1依旧group二?

 

2:下载安装【CentOS】

     为了有利于测试,这里自个儿布置到一台CentOS了。

 

1.
下载fastDFS基础包: https://github.com/happyfish100/libfastcommon/releases

4503.com 2

二.
然后下载fast源码包:

4503.com 3 
 

三.
wget之后,先把libfastcommon给安装一下

tar -xzvf V1.0.36
cd libfastcommon-1.0.36
./make.sh && ./make.sh install

  再把fastdfs安装一下。

tar -xzvf V5.11
cd fastdfs-5.11
./make.sh &&./make.sh install

 

那样的话,我们的fast尽管安装好了,因为是暗中认可安装,所以安插文件是在
/etc/fdfs目录下,运维服务在/etc/init.d下。

[root@localhost ~]# cd /etc/fdfs
[root@localhost fdfs]# ls
 client.conf client.conf.sample storage.conf.sample storage_ids.conf.sample tracker.conf.sample

[root@localhost fdfs]# cd /etc/init.d
[root@localhost init.d]# ls
fdfs_storaged  fdfs_trackerd  functions  netconsole  network  README
[root@localhost init.d]# 

 

4503.com,  然后再把八个storage.conf.sample 和
tracker.conf.sample中copy出大家须求配置的文件。

[root@localhost fdfs]# cp storage.conf.sample storage.conf
[root@localhost fdfs]# cp tracker.conf.sample tracker.conf
[root@localhost fdfs]# ls
client.conf  client.conf.sample  storage.conf  storage.conf.sample  storage_ids.conf.sample  tracker.conf  tracker.conf.sample
[root@localhost fdfs]# 

 

  4.  tracker.conf 配置

    那一个布局文件,首假诺计划内部的base_path。

# the base path to store data and log files
base_path=/usr/fast/fastdfs-5.11/data/tracker

   钦定完路线之后,大家创造二个data文件夹和tracker文件夹。

 

  1. storage.conf 配置

    那一个布局文件,大家第二配备3样东西。

  1.  本storage服务器的groupname,我们看过架构图应该也知晓了,对啊。

  2.  为了加强磁盘读写,能够钦赐本groupname的file存储在怎么样磁盘上。

  3. 点名和哪1台trackerserver进行互动。

    # the name of the group this storage server belongs to
    #
    # comment or remove this item for fetching from tracker server,
    # in this case, use_storage_id must set to true in tracker.conf,
    # and storage_ids.conf must be configed correctly.
    group_name=group1

# the base path to store data and log files
base_path=/usr/fast/fastdfs-5.11/data/storage

# path(disk or mount point) count, default value is 1
store_path_count=1

# store_path#, based 0, if store_path0 not exists, it's value is base_path
# the paths must be exist
store_path0=/usr/fast/fastdfs-5.11/data/storage/0
#store_path1=/home/yuqing/fastdfs2

# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
tracker_server=192.168.23.152:22122

 

然后在data目录下创设storage和0文件夹

 

陆.起步
FastDFS,能够看到2212二的端口已经起步了,表明搭建成功

[root@localhost ~]# /etc/init.d/fdfs_trackerd start
Starting fdfs_trackerd (via systemctl):                    [  OK  ]
[root@localhost ~]# /etc/init.d/fdfs_storaged start
Starting fdfs_storaged (via systemctl):                    [  OK  ]
[root@localhost 0]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      4346/fdfs_trackerd  
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1786/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1129/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1128/cupsd          
tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      4171/fdfs_storaged  
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1556/master         
tcp6       0      0 :::22                   :::*                    LISTEN      1129/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1128/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1556/master         
[root@localhost 0]# 

 

三:使用C#客户端

   
 在github上有2个C#的客户端,大约能够接纳一下: 
 或然通过nuget上搜一下:

4503.com 4

 

class Program
    {
        static void Main(string[] args)
        {
            ConnectionManager.InitializeForConfigSection(new FastDfsConfig()
            {
                FastDfsServer = new List<FastDfsServer>()
                {
                    new FastDfsServer()
                    {
                         IpAddress="192.168.2.25",
                          Port=22122
                    }
                }
            });

            var storageNode = FastDFSClient.GetStorageNode("group1");

            var path = FastDFSClient.UploadFile(storageNode, new byte[10000], ".txt");

            var rsp = FastDFSClient.DownloadFile(storageNode, path);

            Debug.WriteLine("上传的文件返回路径:{0}, 下载获取文件大小:{1}", path, rsp.Length);
        }
    }

 

4503.com 5

 

好了,本篇就说这么多了,希望对您有辅助。