fastdfs的入门到精通(fastdht环境的搭建)

本文介绍了如何通过FastDHT实现文件上传的去重功能,详细阐述了FastDHT的工作原理及特点,包括其基于键值对的分布式Hash系统、Berkeley DB存储和libevent的网络IO支持。并提供了详细的FastDHT环境搭建步骤,从下载、安装到配置,最后通过测试验证文件去重的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言:

  在前面几篇博客介绍中,我们已经了解到fastdfs单机搭建和关于http请求访问的fastdfs+nginx的实现。现在还存在的问题,当我们上传同一个文件时,没有给我们去重,依然上传成功,返回了一个上传标识。这种情况是我们不想看到的,所以,怎么实现文件的去重,作者余庆给我们提供了一种新的技术,fastdht

介绍:

  FastDHT是一个基于键值对(Key Value Pair)的高效的分布式Hash系统,她可以用来存储大量的Key Value Pair,比如可以用来存储文件名映射表、session数据、用户相关数据等等。 
  FastDHT服务器端底层存储采用Berkeley DB,支持大数据量;网络IO采用libevent,支持大并发连接。FastDHT只用到了BDB最基本的存储功能,数据同步是自己实现的,采用了binlog的复制方式

  由客户端决定应该选择哪台服务器,为例避免查表,应该根据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中,key由三部分组成:namespace、object ID和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值