日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 2.6 hash表作用,高性能分布式哈希表FastDHT介绍及安装配置

發布時間:2023/12/10 linux 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 2.6 hash表作用,高性能分布式哈希表FastDHT介绍及安装配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

FastDHT介紹

FastDHT 是一個高性能的分布式哈希系統 (DHT) ,使用 Berkeley DB 做數據存儲,使用 libevent 做網絡IO處理,提供 Java 版的客戶端接口包。適合用來存儲用戶在線、會話等小數據量信息。

FastDHT存儲Key Value Pair支持兩種存儲方式:緩存方式的MPOOL和持久存儲方式的BDB。Key包括三部分:Namespace, ObjectID和Key。 Key可設置過期時間,自動清除過期數據.Server端劃分group,同group數據互相備份,并且可自動壓縮binlog.服務端可使用單線程,多線程模式。

FastDHT一些特性:

虛擬farm,便于擴容;

分布式算法client端實現,不需要中心服務器;

二進制通信協議,支持Proxy;

使用libevent,異步IO方式,支持大并發;

支持長連接。

FastDHT集群由一個或多個組(group)組成,每個組由一臺或多臺服務器組成,同組服務器上存儲的數據是相同的,數據同步只在同組的服務器之間進行。組內各個服務器是對等的,對數據進行存取時,可以根據key的hash值來決定使用哪臺服務器。數據同步采用推(Push)的方式,由源服務器主動將數據同步到本組的其他服務器。FastDHT集群由一個或多個組(group)組成,每個組由一臺或多臺服務器組成,同組服務器上存儲的數據是相同的,數據同步只在同組的服務器之間進行。組內各個服務器是對等的,對數據進行存取時,可以根據key的hash值來決定使用哪臺服務器。數據同步采用推(Push)的方式,由源服務器主動將數據同步到本組的其他服務器。

FastDHT由客戶端決定應該選擇哪臺服務器,為例避免查表,應該根據key的hash code來選擇服務器,算法描述如下:

1. 計算出key的hash值(hash_code)

2. group_index = hash_code % group_count

3. new_hash_code = hash_code高16位和低16位互換

4. server_index = new_hash_code % 組內server_count

計算server_index和group_index時使用了不同的hash code,是因為如果group_count和組內server_count相等,例如都等于2,那么對于一個組來說,任何key值都將選中其中一臺固定的服務器(server_index == group_index)。

FastDHT基本結構圖如下所示:

FastDHT 安裝步驟完善

需要的依賴庫文件: libevent-1.4.so.2 , libdb-4.7.so

依賴庫文件存在于以下依賴包:libevent-1.4.14-stable ?Berkley DB-4.7.25

一. 安裝步驟:

(請按照順序進行安裝)

1. install ?libevent-1.4.14-stable.tar.gztar?xzf?libevent-1.4.14-stable.tar.gz

cd?libevent-1.4.14-stable

./configure?--prefix=/usr

make?&&?make?install

2. install Berkley DB-4.7.25tar?xzf?db-4.7.25.tar.gz

cd?db-4.7.25/build_unix

../dist/configure?--prefix=/usr

make?&&?make?install

3. install FastDHT V1.18tar?xzf?FastDHT_v1.18.tar.gz

cd?FastDHT

./make.clean

./make.sh

./make.sh?install

(確保存在?fdhtd.conf??fdht_servers.conf??fdht_client.conf?在服務器上)

創建目錄: mkdir /etc/fdhtd (目錄權限 : 755 ?所屬者: root)

cp fdhtd.conf /etc/fdhtd/ ? ? ? ? ? ? ?(文件權限 : 644 ?所屬者: root)

cp fdht_servers.conf /etc/fdhtd/ ? ?(文件權限 : 644 ?所屬者: root)

cp fdht_client.conf /etc/fdhtd/ ? ? ? (文件權限 : 644 ?所屬者: root)

vi /etc/fdhtd/fdhtd.confport=11411

bash_path=

cache_size?=?32MB

#include?/etc/fdhtd/fdht_servers.conf??->?(本行前有#表示打開,如果想關閉此選項,則應該為##開頭)

vi /etc/fdhtd/fdht_server.confgroup_count?=?2???(數字可自定義)

group0?=?:

group0?=?:

group1?=?:

group1?=?:

依次類推

vi /etc/fdhtd/fdht_client.conf

keep_alive=1 ?--> (本選項關聯 storaged.conf文件)

bash_path=

# include /etc/fdhtd/fdht_servers.conf

配置storaged.conf文件

vi ?storaged.conf (默認位置: /etc/fdfs/storaged.conf)

本配置項解釋: 是否檢測上傳文件已經存在。如果已經存在,則不存在文件內容,建立一個索引鏈接以節省磁盤空間

line 193: ?key_namespace=FastDFS

本配置項解釋: 當上個參數設定為1時 , 在FastDHT中的命名空間

line 197: ?keep_alive=1

本配置項解釋: 長連接配置選項,如果為0則為短連接 1為長連接

line 204: ?# include /etc/fdhtd/fdht_servers.conf

本配置項解釋: 可以通過 #include filename 方式來加載 FastDHT servers ?的配置

三. 判斷排錯

1. ?fdht文件應該存在于 /etc/fdhtd/文件夾下

2. ?/etc/fdfs/storaged.conf && /etc/fdfs/fdhtd.conf 2個配置文件中應開啟如下配置項

# include /etc/fdhtd/fdht_servers.conf

3. ?cache_size 應 > 32M及以上

4. ?ulimit -c unlimited 即可

四. 啟動FastDHT

/usr/local/bin/fdhtd /etc/fdhtd/fdhtd.conf

若出現段錯誤,則按照如下步驟排查,若沒有出現任何報錯則直接使用命令 netstat -an | grep 11411來查看端口是否啟動

段錯誤排錯步驟:

1. ldd /usr/local/bin/fdhtd 查看是否所有動態鏈接庫全鏈接完畢

ldd的結果應包含如下2條:

(X86_64)

libevent-1.4.so.2 => /lib64/libevent-1.4.so.2 (0x00000000.....)

libdb-4.7.so => /lib64/tls/libdb-4.7.so (0x00000000....)

libevent-1.4.so.2 => /lib/libevent-1.4.so.2 (0x00000000.....)

libdb-4.7.so => /lib/tls/libdb-4.7.so (0x00000000....)

2. 若ldd的結果為 libdb-4.2.so => /lib64/tls/libdb-4.2.so (0x00000000....)

則應該進行如下替換操作:

find / -name libdb-4.7.so

cp {$path}/libdb-4.7.so ?/lib64/tls/libdb-4.2.so

3. 若結果沒有錯誤,則檢查對應安裝軟件版本

libevent-1.4.8以上版本

Berkeley-db-4.7.25以上版本

FastDHT V1.0以上版本

您可能感興趣的文章:

總結

以上是生活随笔為你收集整理的linux 2.6 hash表作用,高性能分布式哈希表FastDHT介绍及安装配置的全部內容,希望文章能夠幫你解決所遇到的問題。

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