国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        技術文章:分布式系統模式之Consistent Core

        2021-03-21 16:22
        java達人
        關注

        維護較小的集群可提供更強的一致性,以允許大型數據集群協調服務器活動,而無需實現基于 quorum 的算法。

        問題

        線性化是最強的一致性保證,可以保證所有客戶端都能看到最新提交的數據更新。提供線性化以及容錯功能需要在服務器上實現共識算法,例如 Raft,Zab 或Paxos。

        盡管共識算法是實現 Consistent Core 的基本要求,但客戶端交互的各個方面(例如客戶端如何找到leader,重復請求的處理方式等)都是重要的實現決策。關于安全性和活躍性,還有一些重要的實現注意事項。Paxos 僅定義共識算法,但是 Paxos 文獻中沒有很好地記錄其他實現方面的內容。Raft非常清楚地記錄了各種實現方面以及參考實現,因此是當今使用最廣泛的算法。

        當集群需要處理大量數據時,它需要越來越多的服務器。對于服務器集群,存在一些共同的要求,例如選擇特定的服務器作為特定任務的 master ,管理組成員信息,將數據分區映射到服務器等。這些要求需要強大的一致性保證,即線性化 。實現也必須是容錯的。一種常見的方法是使用基于 Quorum 的容錯共識算法。但是在基于 Quorum 的系統中,吞吐量會隨著集群的大小而降低。

        解決方案

        實現一個較小的3到5個節點的集群,該集群可提供線性化保證和容錯能力。單獨的數據集群可以使用小型一致性集群來管理元數據,并使用諸如 Lease 之類的機制來進行集群范圍的決策。這樣,數據集群可以擴展大量的服務器,但是仍然可以使用較小的元數據集群執行某些需要強一致性保證的操作。

        Figure 1: Consistent Core
        一個典型的consistent core接口是這樣的:

        public interface ConsistentCore {
           CompletableFuture put(String key, String value);
           List

        Consistent Core至少提供了一種簡單的鍵值存儲機制。它用于存儲元數據。

        元數據存儲

        使用諸如Raft之類的共識算法來實現存儲。它是“Replicated Write Ahead Log”實現的示例,其中復制由Leader and Followers處理,High-Water Mark用于跟蹤通過Quorum進行的成功復制。

        支持分層存儲

        Consistent Core通常用于存儲數據,例如:組成員身份或跨服務器的任務分配。一種常見的使用模式是使用前綴來限制元數據的類型。例如 對于組成員身份,keys 將全部存儲為/servers/ 1,server/2等。對于分配給服務器的任務,keys可以為/tasks/task1,/tasks/task2。通常使用特定前綴讀取所有鍵數據。例如,要獲取有關集群中所有服務器的信息,將讀取所有帶有前綴/servers 的 keys。

        用法示例如下:
        服務器可以通過使用前綴/servers 創建自己的 key 來向 Consistent Core 注冊自己。

        client1.setValue("/servers/1", "{address:192.168.199.10, port:8000}");
        client2.setValue("/servers/2", "{address:192.168.199.11, port:8000}");
        client3.setValue("/servers/3", "{address:192.168.199.12, port:8000}");

        然后,客戶端可以通過讀取key前綴 /servers 來了解集群中的所有服務器,如下所示:

        assertEquals(client1.getValue("/servers"), Arrays.asList("{address:192.168.199.12, port:8000}",
                                                                   "{address:192.168.199.11, port:8000}",
                                                                   "{address:192.168.199.10, port:8000}"));

        由于數據存儲的這種分層性質,[zookeeper],[chubby]之類的產品提供了類似于接口的文件系統,用戶可以在其中創建具有父節點和子節點概念的目錄、文件或節點。[etcd3]具有扁平化的鍵空間,可以獲取一系列鍵。

        處理客戶端交互

        Consistent Core功能的關鍵要求之一是客戶端如何與 Consistent Core 交互。以下方面對于客戶端使用 Consistent Core至關重要。

        1  2  下一頁>  
        聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

        發表評論

        0條評論,0人參與

        請輸入評論內容...

        請輸入評論/評論長度6~500個字

        您提交的評論過于頻繁,請輸入驗證碼繼續

        暫無評論

        暫無評論

          人工智能 獵頭職位 更多
          掃碼關注公眾號
          OFweek人工智能網
          獲取更多精彩內容
          文章糾錯
          x
          *文字標題:
          *糾錯內容:
          聯系郵箱:
          *驗 證 碼:

          粵公網安備 44030502002758號

          主站蜘蛛池模板: 亚洲国产熟女第一页| 多p在线观看| 巴彦县| 成人深爱网| 欧美538| 国产偷伦| 加查县| 黑人一区| 无码123| 91视频在线观看网站| 色二区| 五月情婷婷| 精品人妻一区二区三区在线视频不卡| 蜜臀久久99精品久久久久酒店| 亚洲成人在线播放| 黑人无码av| 炎陵县| 91大神视频破解版在线观看| 久久国产AV| 彰化市| 亚洲成年网站| 精品国产国产2021| 伊人网狼人| 亚洲中文字幕2025| 欧美另类3| 澎湖县| 精品日韩在线视频网站 | 欧美BBXX| Jizz日本18| 亚洲中文字幕av| www.jizzjizz| 寻甸| 凹凸福利导航| 蜜桃秘?av一区二区三区安全| 国产丝袜剧情演绎| 台湾佬久久| 不卡无码av| 欧美1024| jizzjizz韩国| 阳曲县| 91视频在线观看视频|