Grid Virtual Server 的 Virtual Server 源於 LVS (Linux Virtual Server) , LVS 的意思就是把 多個 Linux 服務器 聯合起來構成一個 虛擬的服務器 , 也就是 集羣 。數據庫
那麼這裏的 Grid 是 怎麼回事 呢 ?服務器
集羣 能夠 算是 中心化 的 方式 。 中心化的方式始終存在一個問題 , 就是 「瓶頸」 。 架構
瓶頸 包含 2 層 含義 , 一是 性能 , 二是 故障轉移 。 負載均衡
性能瓶頸 好理解, 故障轉移瓶頸 又是什麼呢 ? 故障轉移瓶頸 是指 中心化 的 資源 最終會有一個 「出入口」 , 好比 負載均衡 架構 裏的 交換機 , 又好比 數據庫集羣 裏的 共享存儲 。 若是 交換機 壞了 , 或者 共享存儲 壞了 , 那麼 中心化 的 可用性 就 壞了 。 性能
一般解決這個問題的方法是 擴展加強硬件能力 , 也就是說 , 「出入口」 是一個 超級硬件 。 但不管這個硬件如何強大 , 始終是一個 「脖子」(neck) 。 人工智能
因此 , 若是反過來 , 由 客戶端 本身決定鏈接哪一個 服務器節點 , 那 「脖子」 的問題就迎刃而解了 。spa
客戶端 一開始會鏈接到一個已知的 服務器節點 , 從這個服務器節點能夠獲取 其它的服務器節點列表 , 從 其它的 服務器節點 又能夠獲取更多的 服務器節點列表 , 客戶端能夠保存這些 服務器節點列表 , 而後選擇一個 服務器節點 鏈接 。 資源
這也許是 網格計算(Grid)的 開始 。 ^ ^集羣
網格計算 不是 「去中心化」 , 而是 「多中心化」 和 「客戶端智能化」 。擴展
因此 , Grid Virtual Server 的 意思, 就是用 上述的 Grid 的方式, 來構建一個 「Virtual Server」 。
要實現 Grid , 須要一個 Grid 協議 。 Grid 協議 , 能夠看做是 Tcp 之上的一個輕薄的 應用層協議 。
Grid 協議能夠嵌入到現有的各類應用層協議中 。 好比 能夠嵌入到 Http 中 。 好比 , 能夠給 Http Request 加一個 Header 「Grid : 」 , 表示 客戶端 支持 Grid , 同時 Http Response 中能夠加一個 Header 「Grid-Server-List : 」 , 用於返回 服務器節點列表 。 客戶端 根據 服務器節點列表 來選擇 訪問 哪一個節點 。
「多中心化」 固然會帶來一些問題須要解決 。 好比 數據如何多中心化 ? 數據的 分區 水平擴展 並行計算 原本就是一個不容易的事 。 若是用 最終一致 來替代 強一致 , 可能事情就比較簡單 。 將來 , 樂觀 鬆耦合 是一個 好的方向 。 就像 樂觀鎖定 和 悲觀鎖定 。
並行計算 和 網格計算 是 將來 大計算能力 的 基石 。
並行計算 大計算能力 是 將來 白盒人工智能 的 基石 。