FastDHT(分布式hash系统)安装和与FastDFS整合实现自定义文件ID

[b]由于项目需要自定义文件的路径名称,而Fastdfs天生就是不支持自定义名称的,所以只能使用映射的方式来做,找了半天资料,发现余大已经实现了。经过半天的折腾总算是完成了[/b]

[b]一简介
? 分布式hash系统,存储Key Value Pair
? 支持两种存储方式
– 缓存方式的MPOOL
– 持久存储方式的BDB
? Key包括三部分:
– Namespace
– ObjectID
– Key
? Key可设置过期时间,自动清除过期数据
? Server端划分group,同group数据互相备份,并且可自动压缩binlog
服务端可使用单线程,多线程模式
? 虚拟farm,便于扩容
? 分布式算法client端实现,不需要中心服务器
? 二进制通信协议,支持Proxy
? 使用libevent,异步IO方式,支持大并发
? 自动failover
? 支持长连接[/b]
拷贝自作者的ppt.
二 安装
这里安装使用的机器是Centos5.10 64位
准备安装源码
下载DBD这里使用最新版6.0.30 http://download.oracle.com/berkeley-db/db-6.0.30.tar.gz
下载FastDHT 最新版2.0 同FastDFS5.x版本一样,必不需要依赖libevent了.
http://ftp.jaist.ac.jp/pub/sourceforge/f/fa/fastdht/FastDHT%20server%20and%20php%20ext/FastDHT%20Server%20Source%20Code%20V2.00/FastDHT_v2.00.tar.gz
编译安装DBD
tar xf db-6.0.30.tat.gz
cd db-6.0.30/build_unix
../dist/configure –prefix=/usr
make // DB我这里使编译好好久呢.
make install
安装FastDHT
tar xf FastDHT_v2.00.tar.gz
cd FastDHT
./make.sh clean
./make.sh
./make.sh install
三 配置
首先执行下面的替换掉libdb的so
cp /usr/lib/libdb-6.0.so /lib64/libdb-4.3.so
新建文件夹存放DHT的数据
mkdir –p /data/fs/fdht

修改配置文件
vi /etc/fdht/fdht_servers.config
group0=你自己的IP地址 不能用localhost和127.0.0.1

vi /etc/fdht/fdhtd.conf
base_path=/data/fdht

启动DHT
/usr/local/bin/fdhtd /etc/fdht/fdhtd.conf
执行 netstat –ntlp
看到11411 说明安装成功了
vi /etc/fdhtd/fdht_client.conf
keep_alive=1 --> (本选项关联 storaged.conf文件)
bash_path=/data/fdht
# include /etc/fdhtd/fdht_servers.conf

配置storaged.conf文件
vi storaged.conf (默认位置: /etc/fdfs/storaged.conf)
check_file_duplicate=1
key_namespace=FastDFS
keep_alive=1
# include /etc/fdht/fdht_servers.conf

最后自定义生成ID 需要配合my-fastdfs-client

    推荐阅读