Last week, we talked about
◻Definition and features of indirect communication,
◻Paradigms of indirect communication,
◻Compared publish-subscribe, message queues, distributed shared memory and tuple spaces,
◻A case study with Java Messaging Service.
Today we talk about
◻P2P (Peer to Peer) computing
🞑Characteristics
🞑Benefits
🞑Disadvantages
🞑Various P2P network implementations
◻Cloud Computing
◻Fog Computing
P2P (Peer-to-Peer) 计算
1. 概述
P2P(Peer-to-Peer)计算是一种分布式系统模型,其中各个节点(称为“对等体”或“Peer”)既是客户端,也是服务器。每个节点可以直接与其他节点通信,而不依赖于集中式服务器。
2. 特点(Characteristics)
去中心化:P2P 系统没有中心服务器,每个节点都可以共享资源、数据或服务。
对等关系:每个节点(Peer)角色对等,既是资源的消费者,也是资源的提供者。
动态拓扑:节点可以随时加入或退出系统,P2P 网络的结构动态变化。
自组织性:网络中的节点可以自发连接和维护网络拓扑结构。
分布式资源共享:节点之间共享存储、计算能力、文件等资源。
3. 优点(Benefits)
可扩展性:P2P 网络可以轻松扩展,随着节点的增加,整体的资源容量和计算能力提升。
资源利用最大化:网络中的每个节点都可以提供资源,充分利用分布式资源。
容错性和可靠性:由于没有单一故障点,系统更具容错能力,部分节点失败不会导致整个网络瘫痪。
成本低廉:不需要昂贵的集中服务器,节点可以使用现有的资源参与网络。
动态适应性:节点可以自由加入或离开,网络可以根据需求动态重组。
4. 缺点(Disadvantages)
管理难度高:由于网络去中心化,难以对节点进行集中管理。
安全性问题:
• 节点可能传播恶意代码或病毒。
• 身份验证和数据安全较难保障。
节点不稳定:节点随时可以离开,导致资源访问不稳定。
搜索效率低:在无结构化 P2P 网络中,查找资源可能需要大量时间和带宽。
带宽消耗大:节点之间的频繁数据交换可能导致网络带宽压力大。
5. 不同的 P2P 网络实现(Various P2P Implementations)
1. 结构化 P2P 网络(Structured P2P)
• 节点之间按照某种拓扑结构组织,通常使用分布式哈希表(DHT) 进行资源定位。
• 特点:高效查找资源,时间复杂度低。
• 示例:Chord、Pastry、CAN(Content Addressable Network)。
2. 非结构化 P2P 网络(Unstructured P2P)
• 节点之间没有固定的拓扑结构,资源查找通过泛洪(Flooding)或随机游走等方式。
• 特点:实现简单,但资源搜索效率较低。
• 示例:Gnutella、KaZaA。
3. 混合 P2P 网络(Hybrid P2P)
• 结合了集中式服务器与去中心化节点的优点。中心服务器帮助节点查找资源,而实际的数据传输在节点之间进行。
• 特点:查找效率高,部分去中心化。
• 示例:Napster、Skype。
6. 应用场景
文件共享:如 BitTorrent 和 Gnutella。
分布式计算:如 SETI@home、Folding@home。
实时通信:如 Skype。
加密货币:如 Bitcoin,去中心化的区块链技术依赖 P2P 网络。
Cloud Computing(云计算)
1. 定义
云计算是一种通过互联网按需提供计算资源和服务(如存储、处理能力、应用程序)的模型。用户无需购买硬件或软件,可以按需租用资源。
2. 特点
• 按需服务:用户根据需要获取资源。
• 资源池化:多个用户共享资源池,提高资源利用率。
• 弹性扩展:资源可以根据需求动态扩展或收缩。
• 按使用计费:用户只需为实际使用的资源付费。
3. 应用
• 存储服务:如 Amazon S3、Google Drive。
• 计算服务:如 AWS EC2、Microsoft Azure。
• 应用服务:如 SaaS(软件即服务)平台。
Fog Computing(雾计算)
1. 定义
雾计算是一种扩展云计算的技术,将计算、存储和网络服务部署在靠近数据源的边缘设备上,而不是在远程数据中心中。
2. 特点
• 低延迟:数据处理在靠近设备的边缘完成,减少了数据传输的延迟。
• 边缘计算:分散计算负载到多个边缘节点,减轻云端压力。
• 实时响应:适用于对时间敏感的应用,如物联网(IoT)和自动驾驶。
3. 应用场景
• 智能城市:通过边缘设备实时处理传感器数据。
• 物联网:支持大量设备产生的实时数据处理。
• 工业自动化:设备间的数据交换与实时控制。
总结
今天讨论了三种分布式技术的核心内容和应用场景:
P2P 计算:强调去中心化、节点的对等性,适合分布式资源共享和文件传输。
云计算:集中化的资源管理和按需服务,适用于大规模计算和存储。
雾计算:将计算移到边缘设备,更适合实时数据处理和低延迟需求。
每种技术都有各自的优势和应用领域,开发者可以根据不同的系统需求选择合适的分布式架构。
Problems of Client/Server architecture
◻Client/Server architecture is a main architecture for distributed systems.
◻If too many users access the server/s at the same time, such architecture can suffer from network overload problem.
🞑Slow down,
🞑Long queues (排队),