一致性hash實現

2021-09-27 10:34:52 字數 1270 閱讀 4198

一致性雜湊演算法在2023年由麻省理工學院提出的一種分布式雜湊(dht)實現演算法,設計目標是為了解決網際網路中的熱點(hot spot)問題,初衷和carp十分類似。一致性雜湊修正了carp使用的簡 單雜湊演算法帶來的問題,使得分布式雜湊(dht)可以在p2p環境中真正得到應用。

具體**實現:

#include #include #include #include #include using namespace std;

namespace crc

; static uint32_t crc32(char* c, int len)

return (crc ^ 0xffffffff);

}static uint32_t crc32(const std::string& str)

}//儲存server型別資訊

class server

server(string ip, int port, string name):m_ip(ip),

m_port(port),m_name(name){}

virtual ~server(){}

std::string getname() const

private:

std::string m_ip;

int m_port;

std::string m_name;

};//進行hash運算

class hasher

};class virtualnode

virtualnode(server& server, int num): m_server(server), m_num(num){}

virtual ~virtualnode(){}

std::string getname() const

server getrealserver()

private:

int m_num; //號碼

server m_server;

};class virtualnodes

private:

int m_counts; //預設每個真實節點可以虛擬500個

mservertype m_servers; //儲存server資訊

hasher m_hash;

};int main(int argc, char const *ar**)

一致性hash原理具體參考:

專案中使用**例項:

(consistenthashex)

一致性hash演算法 面試必備 一致性hash演算法

最近公司在招人,我們準備的問題中有一道是關於一致性hash演算法的問題,只有一些面試者能夠回答上來,而且答的也不是很全面,有的面試者只是聽說過,有的連聽都沒聽過,下面我把一致性hash演算法整理一下分享給大家 一致性雜湊演算法在1997年由麻省理工學院的karger等人在解決分布式cache中提出的...

一致性hash演算法虛擬節點 一致性hash演算法

hash 演算法也叫做雜湊演算法,他可以讓任意長度的資料m對映成為長度固定的值h。hash演算法的第乙個作用就是資料的快速儲存與查詢。寫過程式的人都知道,基本上主流的程式語言裡面都有個資料結構叫做map dictionary或者 hash table 它是根據key來直接訪問結果的資料結構。key的...

一致性hash演算法

july部落格16章開始 第一題 全排列,輸入乙個字串,列印出該字串中字元的所有排列 1.個人思路 回溯法建立的排序樹 2.july部落格 遞迴實現,依次固定第乙個字母,後面的交換,和上面描述的使用回溯法相似 c stl 演算法 next permutation的思想,關於next permutat...