📜  分布式系统的设计问题

📅  最后修改于: 2021-10-19 05:32:00             🧑  作者: Mango

分布式信息系统被定义为“许多相互依赖的计算机通过网络连接起来,在它们之间共享信息”。分布式信息系统由多台自治计算机组成,这些计算机通过计算机网络进行通信或交换信息。

分布式系统的设计问题——

  1. 异构性:异构应用于不同开发者的网络、计算机硬件、操作系统和实现。异构分布式系统客户端-服务器环境的一个关键组件是中间件。中间件是一组服务,使应用程序和最终用户能够跨异构分布式系统相互交互。
  2. 开放性:分布式系统的开放性主要取决于向用户提供新的资源共享服务的程度。开放系统的特点是它们的关键接口是公开的。它基于统一的通信机制和公开的共享资源访问接口。它可以由异构硬件和软件构建。
  3. 可扩展性:即使连接的用户和资源数量显着增加,系统的可扩展性也应保持高效。
  4. 安全性:信息系统的安全性包括机密性、完整性和可用性三个组成部分。加密保护共享资源,在传输时保持敏感信息的秘密。
  5. 故障处理:当硬件和软件程序出现某些故障时,可能会产生不正确的结果,或者可能会在完成预期计算之前停止,因此应采取纠正措施来处理这种情况。
    分布式系统中的故障处理很困难,因为故障是局部的,即某些组件发生故障而其他组件继续函数。
  6. 并发:有可能多个客户端同时尝试访问共享资源。多个用户对相同的资源发出请求,即读、写和更新。每个资源在并发环境中都必须是安全的。任何代表分布式系统共享资源的对象都必须确保它在并发环境中正确运行。
  7. 透明性:透明性确保分布式系统应被用户或应用程序程序员视为单个实体,而不是协作的自治系统的集合。用户应该不知道服务所在的位置,并且从本地机器到远程机器的传输应该是透明的。

GeeksforGeeks 系统设计课程

想在领先的科技公司获得软件开发人员/工程师的工作吗?或 想要从 SDE I 平稳过渡到 SDE II 或高级开发人员配置文件?如果是,那么您需要深入了解系统设计世界!对系统设计概念的正确掌握非常重要,尤其是对于工作专业人士而言,要在技术面试中获得比其他人急需的优势。

GeeksforGeeks 系统设计课程

这就是为什么 GeeksforGeeks 为您提供以深度面试为中心的System Design – Live Course ,它将帮助您准备与 Google、Amazon、Adobe、Uber 和其他基于产品的公司的 System Designs 相关的问题。