首页 > 其他分享 >分布式系统——它们到底是什么?

分布式系统——它们到底是什么?

时间:2022-09-01 00:23:18浏览次数:78  
标签:计算机 它们 可扩展性 系统 到底 透明度 故障 分布式系统

分布式系统——它们到底是什么?

Photo by 菲利普·卡岑伯格 on 不飞溅

对于大多数技术人员来说,分布式系统一直是他们遵循的良好独立实践的缩影。与传统计算环境相比,它具有许多优势。然而,究竟什么是分布式系统?

什么?

分布式系统简单定义如下:

在系统用户看来,独立计算机的集合就像一台计算机。

它是一种计算机环境,其中各种组件分布在通过网络连接的多台计算机(或其他计算设备)上。这些设备分工并协调他们的工作,以比单个设备负责更有效地完成任务。

分布式系统有两种工作方式:

  1. 每台机器都朝着一个共同的目标工作,最终用户将结果视为一个统一的整体。
  2. 每台机器都有其最终用户,分布式系统使得共享资源或通信服务成为可能。

为什么?

Photo by 马文迈耶 on 不飞溅

因为它们可以利用其他计算设备和进程的资源,分布式系统可以提供在单个系统上难以实现或不可能实现的功能。分布式系统以单体系统无法提供的方式提供可扩展性和更高的性能。

您可以使用分布式系统进行水平扩展以处理更大的流量。您可以增长多少几乎没有上限。与单机相比,分布式系统的故障恢复能力更强。

分布式系统的特点

  1. 并发 — 分布式系统允许我们独立执行任务并与其他分配的任务并行执行。这些任务通过交换消息相互协调。
  2. 沟通和信息传递 — 没有共享内存,这使它们更有效率。
  3. 没有全局状态 — 没有单个进程可以知道系统当前的全局状态。
  4. 异质性 — 不同的设备可以一起运行。
  5. 容错 — 与单台机器相比,分布式系统的容错性更强。

分布式系统的挑战

Photo by 美国国家航空航天局 on 不飞溅

分布式系统也可能有缺点,这可能会影响它们的功能。以下是分布式系统面临的一些挑战:

  1. 异质性 — 当程序用不同的语言编写或开发人员使用不同的实现(数据结构等)时,当计算机尝试通信时就会出现问题。因此,就简化流程达成一致并实施通用标准至关重要。此外,在考虑移动代码(可以从一台计算机传输到另一台计算机的代码)时,如果未指定可执行文件以适应两台计算机的指令和规范,我们可能会遇到一些问题。
  2. 分销透明度 — 由于分布式系统的复杂性,透明度可能存在问题。在这种情况下,透明度是指分布式系统隐藏其复杂性并呈现单个系统外观的能力。当我们谈论透明度时,我们必须谈论有多少透明度。因此,分发必须尽可能地对用户隐藏。
  3. 容错—— 失败是任何程序中的主要问题。然而,在分布式系统中,故障的后果会更加严重,因为存在如此多的进程和用户。此外,由于分布式系统的性质,会出现许多问题。可能会出现系统未做好准备的意外边缘情况,但开发人员必须考虑这些情况。然而,故障处理最重要的方面是承认并非每个故障都可以考虑。因此,实施检测、监控和修复系统故障的流程是故障处理/管理的关键组成部分。
  4. 可扩展性 — 如果一个程序不需要重新设计以在其工作负载增长时保持稳定性和一致性,那么它是可扩展的。因此,无论一个程序(在我们的例子中是分布式系统)有 10 个节点还是 100 个节点,它的性能都不应该改变。
  5. 并发 — 必须提供对资源的共享访问并且易于访问。
  6. 安全 — 安全性包含三个主要组成部分:可用性、完整性和机密性。同样,身份验证和授权也很关键——实体必须经过可验证的身份验证,并且必须根据权限适当地委派特权。由于分发系统处理敏感和私人数据,因此安全性尤为重要。

这就是所有的人!分布式系统可以利用其他计算设备和进程的资源,并且可以提供在单个系统上难以实现或不可能实现的功能。分布式系统以单体系统无法提供的方式提供可扩展性和更高的性能。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/5844/11070100

标签:计算机,它们,可扩展性,系统,到底,透明度,故障,分布式系统
From: https://www.cnblogs.com/amboke/p/16645053.html

相关文章

  • 如何判断一个值到底是什么类型
    Object.prototype.toString方法返回对象的类型字符串,因此可以用来判断一个值的类型。varobj={};obj.toString()//"[objectObject]"上面代码调用空对象的toStrin......
  • scrum敏捷任务协作,到底是用电子看板还是物理看板?
    ​无可厚非,敏捷项目的最终成败与看板本身是物理的还是电子的没有直接关系。所以本文不是讨论敏捷项目的成败,而是讨论:如果你用了看板,那么哪种看板更适合你?笔者基于辅导过......
  • 尝试理解Linux容器进程与宿主机共享内核到底是什么意思?
    背景近期接触容器技术时,经常看到各类比较容器与虚拟机区别的文章中会提到:容器是共享宿主机的内核,而虚拟机则是拥有自己独立的内核,所以不可能在Linux上用容器运行windows,但......
  • 分布式系统的session共享问题
    目前大多数大型网站的服务器都采用了分布式服务集群的部署方式。所谓集群,就是让一组计算机服务器协同工作,解决大并发,大数据量瓶颈问题。但是在服务集群中,session共享......
  • 分布式系统~常见的 配置中心
    一、disconf二、zookepper三、apollo 四、xxl-conf五、redis六、dimond七、SpringCloudConfig八、SpringCloudAlibabaNacos ......
  • 常见的复制模型&分布式系统的挑战 事务,一致性与共识
    Replication(上):常见的复制模型&分布式系统的挑战https://mp.weixin.qq.com/s/LB5SR4ypQwDxzueI1ai2KgReplication(下):事务,一致性与共识https://mp.weixin.qq.com/s/O9Z5e_B......
  • Linux到底要做什么?
    从上一回分析了Linux到底是什么之后。我觉得得具体地思考一下我们到底在实际应用中会拿Linux做什么?从产品应用上来说:如手机、智能电视、智能音箱、车载中控1.手机性能调......
  • Java中的参数传递,到底是值传递还是引用传递?
    1、Java中的参数传递,到底是值传递还是引用传递?结论:Java只有值传递,没有引用传递!错误理解一:值传递和引用传递,区分的条件是传递的内容,如果是个值,就是值传递。如果......
  • EMAS Serverless到底有多便利?
    EMASServerless简介EMASServerless是阿里云提供的基于Serverless技术的一站式后端开发平台,为开发者提供高可用、弹性伸缩的云开发服务,包含云函数、云数据库、云存储......
  • 日志:分布式系统的核心
    日志是什么?提起日志,可能你最先想到的是日常开发中写入到某个文件的信息,例如:log.Println("start...")除此之外,不难想到在数据复制、版本控制等概念中,也有日志两个字的......