分布式哈希表(DHT,Distributed Hash Table)用来在一群节点中实现(key, value)的关系映射。在类似Cassandra、bitcomet等分布式系统中使用了DHT。
DHT是一个不存在中心点的、提供key->value查询功能的分布式系统,关于key到value的映射信息分布式地保存在多个节点上,数据的变化和节点的变化只会影响到部分节点,不会对所有节点产生影响。
作为一种基础架构,DHT可以用来构建更多复杂应用,比如分布式文件系统,域名服务,即时消息,p2p文件共享和内容分发平台。
DHT定义一个关键字空间,比如所有160位的位串集合,然后通过某种算法,把这些关键字映射到整个DHT系统的所有节点上。这种算法称为一致性哈希(consistent hashing)。通过这种算法,DHT可以根据某个关键字找到某个节点,然后对该节点进行操作,比如存数据,查数据等。
DHT中的每个节点只需要与其他部分节点相连即可,使用某个关键字访问任何一个节点,这个节点都可以将信息前传到该key对应的节点上进行处理,这种处理叫做基于关键字的路由(key-based routing)
一致性哈希算法中,通过一个函数定义两个关键字之间的距离,然后给每个节点赋值一个关键字,作为该节点ID,所有离该ID最近的关键字都属于该节点。
今天先学理论,有点迷迷瞪瞪,下次分析一些实现,比如memcached等。
分享到:
评论