日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

一致性哈希简单介绍

發布時間:2025/4/16 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一致性哈希简单介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一致性哈希簡單介紹

  • ?Consistent Hashing 算法早在 1997 年就在論文《Consistent hashing and random trees》中被提出,提出了在動態變化的Cache環境中,哈希算法應該滿足的4個適應條件:
  • 平衡性(Balance)
  • 單調性(Monotonicity)
  • 分散性(Spread)
  • 負載(Load)
  • ?

    一致性哈希原理

    一致性哈希將key用hash函數進行映射,映射出來的所有點能夠分布到一個圓環內,實際上consistent hashing 是一種 hash 算法, 在改變映射內容的大小時,而不需要改變hash算法,且能夠盡可能小的改變已存在 key 映射關系,盡可能的滿足單調性的要求。。這里我要講述一種特殊的一致性哈希——分布式一致性哈希(Distributed Consistent Hashing):
    普通的一致性哈希

    • 分布式一致性哈希(DCH)滿足節點的對稱分布,普通的一致性哈希表現如圖1:



    • 3個節點平均分布在圓環上,每個節點之間的角度為120°,此時,只要hash函數夠均勻,那么每個節點所命中的概率則都是一樣的。
    • 如果再增加一個節點,普通的一致性哈希認為無論在那個節點之間增加新的節點,那么與新的節點非相鄰的節點盡量保持不變,這樣保證一致性哈希的單調性,如圖 2:

    • 新的節點4(n4)自由分配到節點2(n2)和節點3(n3)之間,那么原來的key的映射范圍k3變成了新的k3和k4,插入時,新的k3將著落在節點 4(n4)上;新的k4將著落在節點3上(n3)。為了節點的老數據不丟失,我們還需要將節點3上的屬于k3范圍的數據遷移到新的節點4(n4)上,并定期刪除節點3(n3)的冗余數據(一致性哈希的分散性),這樣在查詢時,不會有命中不到的情況。雖然保證了一致性哈希的單調性,但是這樣的方式不能保證節點的負載均衡,畢竟大部分的查詢會著落在節點1(n1)和節點2(n2)上。
    • 如果減少節點,普通的一致性哈希情況如圖3:

    • 節點3(n3)因為某種原因不能進行映射,那么圓環上只剩下2個節點(n1、n2),這樣原來k1和k3合并成新的k1,即所有的負載全部著落在節點 1(n1)上,同新增加節點一樣,雖然保證了單調性,但是明顯不能保證負載均衡。

      ?

    分布式一致性哈希

    ?

    • 分布式一致性哈希(DCH)只是在普通的的一致性哈希算法進行的一點改進。同樣DCH是將key映射到一個圓環中,與普通一致性哈希不同的是,節點增加了虛擬的節點;包括實節點對之對應的虛節點不是按照連續的弧度范圍進行劃分,而是定義一個最小的弧度單位(最好能夠被圓整分),在這個最小的弧度單位里面均勻放置所有的節點,如圖4:

    • 上圖實線部分表示實節點,虛線部分表示虛節點。
    • 當增加新節點或刪除節點的時候,保證最小弧度單位不變化,每個節點分別控制插入和數據遷移的大小,如圖5所示:

    • 當新增加節點時

    最小弧度中數據遷移大小=最小弧度/節點數
    總共數據遷移量=最小弧度中數據遷移大小*360/最小弧度=360/節點數

    • 與傳統一致性哈希比較,遷移數據從1點節點開始增加,那么遷移的數據弧度比例分別為:

    傳統一致性哈希(2分法):1/2+1/4+1/4+1/8+1/8+1/8+1/8+...
    DCH:1/2+1/3+1/4+1/5+1/6+1/7+1/8...

    • 很明顯,傳統一致性哈希遷移數據量少,但是負載集中在某幾個節點上;而DCH則主要體現在遷移數據會利用各個節點的資源達到均衡,查詢時也會比傳統一致性哈希更均勻些。
    • 當刪除節點時,并無數據遷移;

    總結

    • 對于在分布式的環境中來說,數據的訪問負載均衡更加重要,所以采用DCH的類似架構可能比數據遷移更加重要,比如memcache當中就采用了虛擬節點方式去達到負載均衡的目的。
    • 對于數據遷移來說,普通的一致性哈希針對的是某兩個節點的數據遷移,而DCH針對的是一個分布式的環境,在數據量特別大的時候,DCH方式將數據遷移的壓力分散到各個節點,而不是集中在某些節點上。

    總結

    以上是生活随笔為你收集整理的一致性哈希简单介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。