|
在P2P结构中,节点通过分布式哈希算法在逻辑上组成一个环状结构,其中的每个结点不但存储数据,而且管理自己负责的区域。P2P环状结构没有Master结点,可以灵活地添加结点来实现系统扩充,结点加入时只需与相邻的节点进行数据交换,不会给整个系统带来较大的性能抖动。 P2P环状结构没有中心点,每个结点必须向全局广播自己的状态信息。例如,目前流行的Cassandra和Dynamo系统采用Gossip机制来实现高效的消息同步。 Master-Slave结构和P2P结构的比较如下: 1.Master-Slave结构的设计简单,可控性好,但Master中心结点易成为瓶颈;P2P环状结构的系统无中心结点,自协调性好,扩展方便,但可控性较差,且系统设计必Master-Slave结构的系统要复杂。 2.Master-Slave结构需要维护Master服务器结点,由Master结点维护其管理的Slave结点,维护简单、方便;P2P结构自协调维护网络,扩展方便,可扩展性好。 3.Master-Slave结构的系统将Master结点和Slave结点的功能分开,可减轻结点的功能负载;P2P环状结构的系统,各结点平等,没有起到功能分布的作用。 4.Master-Slave结构的系统通常基于水平分区实现数据分布,方便支持范围查询;P2P环状结构的系统适于基于Hash分布数据,负载均衡性好,但不利于支持范围查询。 【出处】朝乐门.数据科学,清华大学出版社,2016年8月第1版.
|