分布式系统的关键特性:系统设计
分布式系统是一种系统,其组件位于不同的机器或网络上,它们通过相互传递消息来通信和协调其动作,并且组件彼此交互以实现一个共同的目标。
在最简单的定义中,分布式系统是一组计算机,这些计算机一起工作,对于最终用户而言,它们就像一台计算机。 示例-银行系统,大型多人在线游戏和传感器网络。
1.并发
多个客户端可能会尝试同时访问共享资源。 并发控制是DBMS之类的数据库中的过程,用于管理同时(同时完成)的操作而不会彼此冲突。示例→Rajesh和他的朋友同时去电子售货亭购买同一部电影的电影票和 相同的放映时间。 但是,在该特定剧院中,仅剩一个座位可以观看电影。 如果没有并发控制,那么两个电影观众最终都可能会购买票。 但是,并发控制方法不允许这种情况发生。 两个电影观众仍然可以访问电影座位数据库中写入的信息。 但是,并发控制仅向先完成交易过程的买方提供票证。
2.可扩展性
可伸缩性是系统通过向系统添加资源来处理越来越多的工作的能力。换句话说,它是计算机应用程序(硬件或软件)在其(或其上下文)发生更改时继续正常运行的能力。 大小或体积以满足用户需求
水平扩展→这意味着您可以通过在资源池中添加更多服务器来进行扩展。 示例→MongoDB。
垂直扩展→这意味着您可以通过向现有服务器添加更多电源(CPU,RAM,存储设备等)来扩展。 示例→MySQL
> Horizontal Scaling vs. Vertical Scaling
3.可靠性
可靠性是指系统或系统元素在规定的条件下在给定的时间内无故障地执行其预期功能的可能性。even即使一个或多个软件或硬件组件出现故障,分布式系统也可以继续提供服务,这是可靠的。 ?→→因为如果任何组件出现故障,则立即将其替换为其他正常组件。证书示例→大型电子商务商店(Amazon),其中主要要求之一是,任何用户交易都不应由于该组件的故障而被取消 机。 例如,如果用户已将商品添加到他们的购物车中,则系统不会丢失该商品。 可靠的分布式系统通过软件组件和数据的冗余来实现这一目标。 如果承载用户购物车的服务器发生故障,则应替换另一台具有该购物车确切副本的服务器。
4.可用性
可用性是指基础结构,系统或解决方案在正常情况(条件)下可正常运行以达到其预期目的的时间百分比。示例→您将服务器带入了一年。 一年有365天。 现在,在完成一年的服务后,您会看到服务器在一年的时间内处于关闭和启动状态,假设每年的总停机时间=36.5天,每年的总正常运行时间=365–36.5=328.5天可用性=(正常运行时间/正常运行时间+停机时间)* 100=((328.5)/(328.5 + 36.5))* 100=90%.
Availability高可用性→如果可用性趋于100%,则称为高可用性。 为此,它包含备用组件,当活动组件停止工作时,备用组件会自动切换(故障转移)。 故障转移对用户而言应该是无缝的,并且不应中断服务。 一架可以每月飞行多个小时而又不会造成大量停机的飞机可以说具有很高的可用性。 因为他们总是有额外的Jet Engine可用。
5.效率
效率就是使最便宜的东西(如速度,质量和成本)尽可能便宜。 如果我们将高速,高质量和最低成本相结合,则意味着良好的效率。
我们如何估计分布式系统的效率? 假设一个操作以分布式方式运行,并因此交付一组项目。 对其效率进行的两种常规度量是表示获得第一项的延迟的响应时间(或等待时间)和表示以给定的周期单位(例如,第二个)传递的项数的吞吐量(或带宽)。 这些措施对于在分析级别限定系统的实际行为很有用,表示为网络流量的函数。 这两项措施对应以下单位成本:
· 无论消息大小如何,系统节点全局发送的消息数;
· 表示数据交换量的消息大小。
分布式数据结构所支持的操作的复杂性(例如,在分布式索引中搜索特定键)可被表征为这些成本单位之一的函数。
一般而言,根据"消息数"来分析分布式结构过于简单。 它忽略了许多方面的影响,包括网络拓扑,网络负载及其变化,数据处理和路由中涉及的软件和硬件组件可能的异构性等。但是,要确定精确的成本是相当困难的 可以准确考虑所有这些性能因素的模型; 因此,我们必须对系统性能进行粗略但可靠的估计。
6.可维修性
可维护性是指从故障中恢复(或预防)的难易程度; 系统保持运行的效率/效率。 它专注于诸如硬件组件的可访问性和替换组件的可用性之类的事情。
7.可管理性
易于诊断和理解问题的发生时间,易于进行更新或修改以及系统的操作简便性。
换句话说,它是指易于监视和维护系统以保持其性能,安全性和平稳运行的难易程度。 它的重点是直接于系统管理员,而不是用户,他们提供工具和控件来简化该工作。
8.容错
容错是指系统(计算机,网络,云群集等)在一个或多个组件发生故障时继续运行而不会中断的能力。
OS可以通过硬件,软件或利用负载平衡器的组合解决方案来处理OS恢复和容忍故障而不失败的能力。
容错系统使用自动替换故障组件的备份组件,以确保不损失服务。
9.一致性
在分布式系统中,一致性模型是系统与使用它的开发人员之间的契约。 如果对内存的操作遵守该模型定义的规则,则据说该系统支持某种一致性模型。它们是功能强大的抽象,有助于从系统的可观察特性来描述该系统。示例→从实际的角度来看, 一致性模型回答以下问题:如果客户端1在1:00 pm将对象添加到分布式数据存储中,而客户端2尝试在1:01 pm读取同一对象,则客户端2能够获取新对象吗? 还是因为找不到资源而得到404?答案是……取决于。 有许多因素需要考虑来回答这样的问题。 其中之一是分布式数据存储采用的一致性模型。
联系客服