这是我参与【第五届青训营】伴学笔记创作活动的第八天
分布式系统
P2P学习
1.1 中心化网络
由一台中心索引服务器连接各台主机,索引服务器存储的是各个资源和服务的索引,实际资源还是存储在网络的节点。也就是说,索引服务器存储的是资源和服务的地址,来到索引服务器这里拿到地址去找网络上的节点。
缺点:索引服务器性能有瓶颈,单点失效
1.2 分布式(非结构化)
在现有的网络体系结构上多加一层虚拟网络,并将虚拟网络的每个节点与实际网络的一些节点相连接,这样的现象叫做重叠网络,分布式非结构化拓扑正式采用了这种形式。
但是这样的话,节点发现资源需要自组织的搜索,发现资源非常慢。
1.3 分布式(结构化)
同样采用了重叠网络,但是会采用某种结构化网络来组织虚拟网络,这样节点去寻找资源会更快,提高资源发现性能。
So 节点如何如认识其他任意节点?
方案:
1. 每个节点起一个名字
2. 定义节点互连的关系
3. 维护连接关系
4. 联系任意节点
So 节点在相互认识之后传递消息太慢了,怎么办,路由表太大啦!!!
方案:
1. 折衷处理,让路由表和消息跳数减少
2. 路由表:O(logN),N为节点个数
3. 消息跳数:O(logN)
1.4 混合结构
- 分布式结构化拓扑采用了重叠网络
- n重叠网络是在现有的网络体系结构上加多一层虚拟网络,并将虚拟网络的每个节点与实际网络中的一些节点建立一个连接。
- n半分布式拓扑结构吸取了中心化网络拓扑和分布式网络拓扑的优点,选择性能较好的结点作为超级结点,各个超级节点上存储了其余节点的信息。