zoukankan      html  css  js  c++  java
  • 分布式文件服务器FastDFS小案例

    一。下载镜像

      1. 阿里云容器仓库下载

      2. 容器镜像下载

    [root@192 ~]# docker image pull registry.cn-hangzhou.aliyuncs.com/tdenergys/fastdfs
    [root@192 ~]# docker image list
    REPOSITORY                                            TAG                 IMAGE ID            CREATED             SIZE
    dubbo-admin                                           latest              4b43bc0f997e        3 weeks ago         360MB
    mysql                                                 5.6                 27e29668a08a        7 weeks ago         256MB
    zookeeper                                             latest              64e049ee9478        6 months ago        148MB
    registry.cn-hangzhou.aliyuncs.com/tdenergys/fastdfs   latest              63ca62a9f44c        18 months ago       457MB
    [root@192 ~]# docker image tag registry.cn-hangzhou.aliyuncs.com/tdenergys/fastdfs fastdfs
    [root@192 ~]# docker image rm registry.cn-hangzhou.aliyuncs.com/tdenergys/fastdfs
    Untagged: registry.cn-hangzhou.aliyuncs.com/tdenergys/fastdfs:latest
    Untagged: registry.cn-hangzhou.aliyuncs.com/tdenergys/fastdfs@sha256:9aae50225ded5ec4f309e01dbcdf113c3d961fba3b071587ff49c9efde9376d1
    [root@192 ~]# docker image list
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    dubbo-admin         latest              4b43bc0f997e        3 weeks ago         360MB
    mysql               5.6                 27e29668a08a        7 weeks ago         256MB
    zookeeper           latest              64e049ee9478        6 months ago        148MB
    fastdfs             latest              63ca62a9f44c        18 months ago       457MB
    [root@192 ~]# 

      3. 运行tracker

    [root@192 ~]# docker container run -d --name fastdfs_tracker -v /data/fast_data/:/data/fast_data/ --net=host fastdfs sh tracker.sh
    6e1390cee5c81cb59a8d44a2cb45d3b8f5209f8fe60e5a095bd9aac770f4c074
    [root@192 ~]# 

    -d:后天运行

    --name :命名容器

    -v :主机文件夹挂载到容器里

    --net:网络类型,host只有主机和容器互通

      4. 运行storage

    [root@192 ~]# docker container run -d --name fastdfs_storage -e TRACKER_IP=10.20.0.129:22122 -v /data/fast_data/:/data/fast_data/ --net=host -e GROUP_NAME=group1 -e STORAGE_PORT=23000 -e HTTP_PORT=8888 fastdfs sh storage.sh
    9fead632e2fd644aeb43cd3b6b568bcb507545eecf39fc4462ca6d2ead76bfe7
    [root@192 ~]# 

    -e:环境变量,即运行参数

    二。新建案例

      1. 新建工程:fastDFSdemo,并继承parent父工程的依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>parent</artifactId>
            <groupId>com.zgh</groupId>
            <version>1.0-SNAPSHOT</version>
            <relativePath>../parent/pom.xml</relativePath>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>fastDFSdemo</artifactId>
    
    
    </project>

      2. 新建配置文件:fdfs_client.properties ,并修改ip地址

    # connect timeout in seconds
    # default value is 30s
    connect_timeout=30
    
    # network timeout in seconds
    # default value is 30s
    
    network_timeout=60
    
    # the base path to store log files
    
    base_path=/home/fastdfs
    
    # tracker_server can ocur more than once, and tracker_server format is
    #  "host:port", host can be hostname or ip address
    
    tracker_server=10.20.0.129:22122
    
    #standard log level as syslog, case insensitive, value list:
    ### emerg for emergency
    ### alert
    ### crit for critical
    ### error
    ### warn for warning
    ### notice
    ### info
    ### debug
    
    log_level=info
    
    # if use connection pool
    # default value is false
    # since V4.05
    
    use_connection_pool = false
    
    # connections whose the idle time exceeds this time will be closed
    # unit: second
    # default value is 3600
    # since V4.05
    
    connection_pool_max_idle_time = 3600
    
    # if load FastDFS parameters from tracker server
    # since V4.05
    # default value is false
    
    load_fdfs_parameters_from_tracker=false
    
    # if use storage ID instead of IP address
    # same as tracker.conf
    # valid only when load_fdfs_parameters_from_tracker is false
    # default value is false
    # since V4.05
    
    use_storage_id = false
    
    # specify storage ids filename, can use relative or absolute path
    # same as tracker.conf
    # valid only when load_fdfs_parameters_from_tracker is false
    # since V4.05
    
    storage_ids_filename = storage_ids.conf
    
    
    #HTTP settings
    
    http.tracker_server_port=80
    
    #use "#include" directive to include HTTP other settiongs
    ##include http.conf

      3. 新建java文件

    import org.csource.fastdfs.*;
    
    public class dfs {
        public static void main(String[] args) throws Exception {
            // 1、加载配置文件,配置文件中的内容就是 tracker 服务的地址。
            ClientGlobal.init("E:\IdeaProjects\Demo\fastDFSdemo\src\main\resources\fdfs_client.properties");
            // 2、创建一个 TrackerClient 对象。直接 new 一个。
            TrackerClient trackerClient = new TrackerClient();
            // 3、使用 TrackerClient 对象创建连接,获得一个 TrackerServer 对象。
            TrackerServer trackerServer = trackerClient.getConnection();
            // 4、创建一个 StorageServer 的引用,值为 null
            StorageServer storageServer = null;
            // 5、创建一个 StorageClient 对象,需要两个参数 TrackerServer 对象、StorageServer 的引用
            StorageClient storageClient = new StorageClient(trackerServer, storageServer);
            // 6、使用 StorageClient 对象上传图片。
            //扩展名不带“.”
            String[] strings = storageClient.upload_file("E:\IdeaProjects\Demo\fastDFSdemo\src\main\resources\timg.jpg", "jpg",
                    null);
            // 7、返回数组。包含组名和图片的路径。
            for (String string : strings) {
                System.out.println(string);
            }
        }
    }

      4. 运行结果

      5. 浏览器打开可获取图片:http://10.20.0.129:8888/group1/M00/00/00/ChQAgVxoFdiABydJAABVAWt0ukc025.jpg

  • 相关阅读:
    Linux下redis的安装
    elasticsearch使用时问题
    Elasticsearch 2.x plugin 问题汇总
    elasticsearch-jdbc 插件说明
    ElasticSearch 2.x 问题汇总
    深入JVM《一》
    linux fastdfs 搭建配置(单机)
    mybatis自动generator
    spring-boot mybatis 配置 主从分离 事务
    Maven Nexus
  • 原文地址:https://www.cnblogs.com/GH-123/p/10389453.html
Copyright © 2011-2022 走看看