面向單元化的cellbased架構

超級歐派課程 2024-04-25 06:17:53

Cell-based架構是一種設計系統的方式,功能被分解爲被稱爲cell的獨立單元。每一個cell都是獨立的,具有它自己的邏輯和數據存儲,並且與其他cell隔離操作。這種架構從微服務架構和分布式系統中借鑒了健全的原則。

這種架構的關鍵組件包括:

1. Cells:這些是系統的基本構建單元。它們作爲自給自足的單元,每個cell都封裝了特定的功能或一組功能。cells有它們自己的邏輯和數據存儲,獨立于其他cells運行。它們可以獨立部署和配置。它們包含一個或者多個微服務。

2. Cell 路由層:這個組件作爲流量的導向器。它接收到來的請求並根據預定義的標准智能地將它們分配到適當的cell。這個標准可以是從用戶ID到特定請求的數據類型的任何內容。即使工作是由個別的cell完成,路由層爲系統提供了一個單一的入口點。

3. cell間通訊層(可選):雖然cells是設計爲獨立操作,但可能會有需要限制cell之間通信的場景。cell間通信層在受控的方式下促進這種通信。

4. 控制平面:控制層是cell-based架構的核心組件。它負責系統的總體管理和編排,處理像cell(部署或移除)、遷移、監視和可觀察性的任務。

這種架構的優點包括:

可擴展性:由于cells是獨立的單元,你可以輕易地添加或移除cells以基于實時需要擴大或縮小系統。這種橫向擴展使你可以無效應地處理流量或數據處理要求的高峰。

效率:cells可以被特別定制爲它們指定的功能。這種優化能有效地利用諸如CPU、內存和存儲等的資源。每個cell可以配備適當的資源以滿足其工作量需求,避免資源的浪費。

提高故障容忍:cell的隔離有助于系統的故障容忍。如果一個cell失敗,其他的可以繼續運行,使停機時間降到最低並確保整個系統的可用性。

另一方面,這種架構帶來了增加的複雜性、潛在的數據一致性問題、操作過載以及cell級別的監視和故障排除問題。

這種架構應用在高風險應用程序,因爲停機會嚴重影響到用戶和軟件系統,或者當一個關鍵系統快要失敗時。

一些使用這些架構的初創公司實際例子包括Tumblr(用戶被映射到cells中,每個數據中心存在許多cells),Flickr(采取聯邦策略,每個用戶的數據都保存在許多服務的一個分片或集群上),和Facebook(Messages服務架構的基本組件是一系列的設備和服務,稱爲cell。cell由ZooKeeper控制器、一個應用服務器集群和一個元數據存儲組成)。

0 阅读:0

超級歐派課程

簡介:感謝大家的關注