我正在努力拓宽我在分布式系统和系统设计方面的知识。我遇到了内容交付网络和分布式文件系统等术语,用于存储/处理音乐、视频、图片、gif等媒体数据
我知道DFS只是我们笔记本电脑中的一个文件系统,它可以复制到其他服务器(分布式(,使其99.9%可用。CDN是一个可以存储资产的网络,包括javascript、图像、视频等。
现在,我在理解两者之间的区别时有一个很大的困惑,以及哪一个在不同的用例中更有效?如果我对CDN和DFS本身的基本理解是错误的,请纠正我。提前感谢!
他们每个人都有自己的目的。
DFS:
顾名思义,分布式文件系统(DFS(的文件系统(文件的一部分(分布在多个服务器上,尽管它看起来是一个本地文件系统(本地文件(。也就是说,它使客户端能够访问和处理存储在服务器上的数据,就好像它在本地系统中一样。DFS依赖元数据,实现文件目录的透明复制,并具有容错机制,通过缓存最近访问的磁盘块和可扩展性提高了性能。
关键DFS架构如下:
•客户端-服务器体系结构-这应基于许多管理服务器,通过提供系统的全局命名空间来管理多个客户端之间的元数据和数据。
•基于集群的体系结构-该系统具有解耦的元数据和数据,使得一些服务器存储数据,而一些服务器专用于管理元数据。如果一个基于集群的体系结构系统只有一个元数据服务器,则该体系结构系统应被称为集中式系统,而如果它有分布式元数据服务器,那么该体系结构又将被称为分布式系统。
例如,HDFS(Hadoop DFS(是一种DFS,它属于集中式分布式文件系统的类别,因为有一个名为namenode的服务器来管理元数据,数据节点应保存分布式和复制的拆分数据。
在DFS的情况下,当一个团队/组或各种应用程序/流程的许多人在同一个实例上处理一个巨大的文件时,它可以提高效率,并使用户/高级应用程序的日常活动更加顺畅,因为用户/应用程序不需要知道文件的确切路径或备份。它使多个用户能够利用基于高效、安全和强健的文件系统的网络连接的多台机器/主机。
CDN:
CDN使用部署在各种互联网主干网的服务节点,这些服务节点能够相对于最终用户在空间上分发服务,从而提高性能并确保高可用性。该算法为特定请求选择最适合向用户提供内容(基于跳距或负载(的CDN节点或边缘服务器。部署了许多技术,如反应式探测、主动式探测和连接监控,以确定CDN节点/服务节点的接近度。
在CDN的情况下,许多内容提供商向CDN运营商支付费用,通过相应地放置服务节点/服务器,将其内容交付给最终用户。CDN运营商反过来与ISP合作,通过向ISP付费,将其服务器托管在其感兴趣的适当位置的数据中心。