亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是FastDFS?如何使用FastDFS?

發布時間:2020-06-03 20:20:03 來源:億速云 閱讀:278 作者:Leah 欄目:編程語言

什么是FastDFS?如何使用FastDFS?這些問題可能是我們日常工作會見到的。通過這些問題,希望你能收獲更多。下面是揭開這些問題的詳細內容。

什么是FastDFS

FastDFS 是用 c 語言編寫的一款開源的分布式文件系統。FastDFS 為互聯網量身定制,充分考慮了冗余備份、負載均衡、線性擴容等機制,并注重高可用、高性能等指標,使用 FastDFS很容易搭建一套高性能的文件服務器集群提供文件上傳、下載等服務。

FastDFS 架構包括 Tracker server 和 Storage server。客戶端請求 Tracker server 進行文件上傳、下載,通過 Tracker server 調度最終由 Storage server 完成文件上傳和下載。

Tracker server 作用是負載均衡和調度,通過 Tracker server 在文件上傳時可以根據一些策略找到 Storage server 提供文件上傳服務。可以將 tracker 稱為追蹤服務器或調度服務器。

Storage server 作用是文件存儲,客戶端上傳的文件最終存儲在 Storage 服務器上,Storageserver 沒有實現自己的文件系統而是利用操作系統 的文件系統來管理文件。可以將storage稱為存儲服務器。
什么是FastDFS?如何使用FastDFS?
服務端兩個角色:

  1. Tracker:管理集群,tracker 也可以實現集群。每個 tracker 節點地位平等。收集 Storage 集群的狀態。
  2. Storage:實際保存文件   Storage
    分為多個組,每個組之間保存的文件是不同的。每個組內部可以有多個成員,組成員內部保存的內容是一樣的,組成員的地位是一致的,沒有主從的概念。

文件上傳及下載的流程

文件上傳流程

什么是FastDFS?如何使用FastDFS?
客戶端上傳文件后存儲服務器將文件 ID 返回給客戶端,此文件 ID 用于以后訪問該文件的索引信息。文件索引信息包括:組名,虛擬磁盤路徑,數據兩級目錄,文件名。
什么是FastDFS?如何使用FastDFS?

  • 組名:文件上傳后所在的 storage 組名稱,在文件上傳成功后有 storage 服務器返回,需要客戶端自行保存。
  • 虛擬磁盤路徑:storage 配置的虛擬路徑,與磁盤選項 store_path*對應。如果配置了 store_path0 則是
    M00,如果配置了 store_path2 則是 M01,以此類推。
  • 數據兩級目錄:storage 服務器在每個虛擬磁盤路徑下創建的兩級目錄,用于存儲數據 文件。
  • 文件名:與文件上傳時不同。是由存儲服務器根據特定信息生成,文件名包含:源存儲 服務器 IP
    地址、文件創建時間戳、文件大小、隨機數和文件拓展名等信息。
文件下載流程

什么是FastDFS?如何使用FastDFS?

最簡單的 FastDFS 架構

什么是FastDFS?如何使用FastDFS?

FastDFS入門小Demo

(1)創建Maven工程fastDFSdemo
由于FastDFS客戶端jar包并沒有在中央倉庫中,所以需要使用下列命令手動安裝jar包到Maven本地倉庫(將jar包放到d盤setup目錄)。

mvn install:install-file -DgroupId=org.csource.fastdfs -DartifactId=fastdfs  -Dversion=1.2 -Dpackaging=jar -Dfile=d:\setup\fastdfs_client_v1.20.jar

pom.xml中引入

    <dependency>
        <groupId>org.csource.fastdfs</groupId>
        <artifactId>fastdfs</artifactId>
        <version>1.2</version>
    </dependency>

(2)添加配置文件fdfs_client.conf ,將其中的服務器地址設置為192.168.25.133

# 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=192.168.25.133: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類,main方法代碼如下:

   // 1、加載配置文件,配置文件中的內容就是 tracker 服務的地址。
        ClientGlobal.init("D:/maven_work/fastDFS-demo/src/fdfs_client.conf");
        // 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("D:/pic/benchi.jpg", "jpg",
                null);
        // 7、返回數組。包含組名和圖片的路徑。
        for (String string : strings) {
            System.out.println(string);
        }

控制臺輸出如下結果:

group1
M00/00/00/wKgZhV4r9uSAZvkZAAaZOWtmGtU020.jpg

看完上述內容,你們對FastDFS有進一步的了解嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

筠连县| 浮山县| 沁水县| 紫阳县| 遵义市| 新兴县| 绥德县| 南通市| 宜兰市| 丰镇市| 水城县| 沁源县| 固始县| 罗平县| 曲周县| 建昌县| 沛县| 宿州市| 冷水江市| 马公市| 黔东| 庄浪县| 深州市| 隆尧县| 鹤岗市| 阿鲁科尔沁旗| 京山县| 永靖县| 乐昌市| 荣昌县| 武穴市| 龙口市| 鲁山县| 津南区| 讷河市| 呼图壁县| 湘潭市| 农安县| 乌鲁木齐市| 平定县| 称多县|