文章出處

回到目錄

多看幾篇

之所以寫這篇文章完全是因為最近在研究FastDFS這個分布式的文件存儲系統,當然這不是我第一次研究它了,就像我們去看一本書,我們不會只看一篇,而是一次次,一篇篇,每看一次會有新的收獲,而研究技術,框架也是一樣,每研究一次,同樣會有不同層次的收獲,這次主要把fastDFS的集群就配置了一下,客戶端的多tracker,并在程序執行過程中,自己也分析了一下它的集群原理。

原理

事實上,和mongodb,cat等集群原理相似,fastDFS也是有個路由服務器(它被稱為trackers),首先客戶端根據自己的配置,與trackers進行通訊拿到有效的文件服務器地址(被稱為storages),然后客戶端再真正的與它進行數據上的通訊,如上傳文件,下載文件里,因為fastDFS實際上把文件存儲到了storages服務器上。

思維導圖

基礎概念

Stream:流,一般指文件流,內存流,可讀的流和可寫的流等,是一種數據轉換的格式,流在計算機里可以表示為流輸入或輸出的一個連續的字節序列,它在使用完后,需要把資源釋放。

Byte[]:字節數組,字節是通過網絡傳輸信息的單位。在ASCII碼中,一個英文字母(不分大小寫)占一個字節的空間,一個中文漢字占兩個字節的空間。當一個字符通過網絡從一端發到別一端時,會將它轉換成字節數組,需要再發送。

文件上傳時的Stream和byte[],有地我們需要進行轉換,這里總結了兩個方法

public byte[] StreamToBytes(Stream stream)
{
    byte[] bytes = new byte[stream.Length];
    stream.Read(bytes, 0, bytes.Length);
    stream.Seek(0, SeekOrigin.Begin);
    return bytes;
}
  
public Stream BytesToStream(byte[] bytes)
{
    Stream stream = new MemoryStream(bytes);
    return stream;
}

這種代碼其實不難理解,但其中的原理值得我們去回味,因為畢竟,流和字節數據在網絡傳輸中是并不可少的,也是計算機底層所認識的!

回到目錄

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()