Swift 架構學習

2021-09-30 13:35:39 字數 1118 閱讀 2063

swift採用層次資料模型,共3層邏輯結構:account/container/object

account等同於租戶,可以擁有多個container;container是object的父容器,可理解為目錄或者資料夾,當然container不支援巢狀;object就是實際儲存的物件和元資料

swift的節點分為storage節點和proxy節點

proxy節點用於對外提供restful api,將使用者請求路由到相應的storage節點上

storage節點用於儲存account、container和object等資料

每個storage節點都需要執行以下服務:

account相關:

swift-account  

swift-account-auditor 

swift-account-replicator    

swift-account-reaper 

container相關:  

swift-container
swift-container-replicator  

swift-container-auditor  

swift-container-sync    

swift-container-updater

object相關: 

swift-object
swift-object-updater    

swift-object-replicator  

swift-object-auditor  對object進行審計,檢查object的完整性,找出損壞的object檔案並進行隔離

每個proxy節點都需要執行以下服務:

swift-proxy

swift 採用完全對稱的分布式系統架構設計,所有節點都可擴充套件,避免因單點失效而影響整個系統運轉。

好的實踐方式就是:

負載均衡----》多個proxy節點----》多個storage節點

Swift編譯器架構

swift code 開發者自己編寫的 swift ast 根據swiftc生成語法樹 raw swift il swift特有的中間 canonical swift il 更加簡潔的中間 版本 llvm ir 編譯器前端處理完後轉交給llvm生成後端中間 assembly 後端對 進行優化轉變成彙...

Swift 對比學習Swift構造器

首先建立乙個類 實現方法如下 而當我們利用建構函式生成例項時有以下幾種方法 在oc的例子中,構造器initwithname age 內部呼叫了另乙個構造器,避免了 重複,下面來圍觀swift中如何實現。在swift中,當你建立乙個類或者結構體的時候,它們的屬性一定有初值 否則編譯不過,例如let a...

swift學習筆記

1 值永遠不會被隱式轉換為其他型別。如果你需要把乙個值轉換成其他型別,請顯式轉換。let label the width is let width 94 let widthlabel label string width could not find an overload for that acc...