一款P2SP CACHE的設計!

來源:互聯網
上載者:User

     時下P2SP 技術非常流行,公司無論大小,只要設計到網路到要搞上一下。

      最近一個朋友讓我幫忙做個P2P CACHE。又不能用任何公司的代碼(只能參考,防止鋃鐺入獄)。其實P2SP的CACHE非常簡單,一般運行在LINUX伺服器上,FOR EX AMPLE,訊雷。左右也相當於網路中的一個PEER,緩衝需要的資料作為種子節點提供給其它PEER下載。

      現在P2P技術比較爛了,到處都是原始碼,今天下午找了一個。是LINUX命令列下的P2P軟體,支援BT協議。名字叫CTorrent ,連結為http://www.rahul.net/dholmes/ctorrent/ctcs.html#details, 可以點進去具體看。花了兩個小時讀了下原始碼並做了測試。發現剛開始連線速度非常慢。而開啟同樣的Torrent脫兔就快的多。而且在有的伺服器下不可以下載,具體原因還沒有查明。

    既然可以下,那麼協議部分沒有問題。這就幫了大忙,否則還要自己寫BT協議部分的封狀,個人覺得BT協議比較濫(不如自己定的私人協議效率高)。接下來閱讀原始碼。

   比較簡單,先搜尋pthread,呵呵。。竟然沒有(難道是單線程的?),看了一會兒,發現貌似是的(如果不是以後我進行補充,閱讀代碼時間比較短,不太確定)。SELECT。那麼這樣就只能做學習層級的了。

   那麼網路接入部分是不能用了。因為SERVER的網路部分是我的強項,所以這部分修改問題不大。策略決定是MUTITHREAD+QUEUE+EPOLL,這種效率最高,否則對於PEER CACHE來說網路接入部分差肯定是不行(目標為10W並發TCP串連)。而且CTorrent 中從SOCKET讀資料後就進行了具體業務的處理,個人感覺中間還是有一些隊列效率更高,CTorrent  全部封裝在一個類中。

   CTorrent Control Server部分的大概意思貌似是每個CLIENT像這個server報告,進行調度我剛開始讀這部分代碼時候很迷惑,後來到官方網站上才知道作用。沒什麼用感覺,協議定的不好,這部分自己做。感覺這個功能沒啥必要其實。有點像GRID,這部分最好自己寫。

  另外看了一些相關文檔,說一些不要進行修改,損人利己的事。所以開發完成後準備搞一個開源版本放上去,也算做了個貢獻吧。

  感覺它的命令列格式非常好,對開發以及調試都非常有協助。其它的BTCONTENT部分對 METAFILE,CONTENT的封裝,SHA1等也不錯。但是也有改進的地方。

   感覺作者的C/C++混的比較厲害。要是C++封裝的更完美點就更好鳥。

嘿嘿。

   個人首頁 http://www.gnetcom.com

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.