我正在尝试了解分布式哈希表 (DHT)范式,因为它适合 P2P 或完全分布式计算架构。从理论的角度来看,一旦集群建立起来,它如何管理集群数据和分配工作就很有意义了。
对我来说最有趣的部分是该架构从不需要某种集中式控制器或协调器(没有单点故障)。但是,我仍在努力理解这个概念的实际执行,特别是集群是如何形成的。如果它是一个完全分布式的系统,节点如何知道如何“加入”已经建立的集群?
在一个简单的例子中:
- 假设我正在创建一个基于 DHT 模型的 P2P 应用程序
- 应用程序分布在互联网上(也就是不在同一个网络中),任何公共客户端都可以连接到集群
- 连接到集群的客户端可以看到集群中的一些(但不一定是全部)其他客户端
- 未连接的客户端在集群中没有任何地址或客户端名称。
那么,如果没有任何集中式服务器充当信标,或者提供将新客户端引入集群的手段,那么新客户端将如何“连接”呢?