学习了阿里巴巴丹尼尔分享的685页分布式系统开发实践文档后,直接加入蚂蚁

物联网

系统架构设计


浏览:428 次

自20世纪40年代计算机诞生以来,计算机和互联网呈现出快速发展的趋势。今天的互联网包含以下功能。

互联网金融用户规模持续扩大。越来越多的网民选择在网上购买金融产品。

网上零售交易创下新高。在2019年的“6·18”购物节期间,仅京东一家就下单金额达2015亿元人民币。

移动支付的使用率持续增长。无论是网购还是实体购物,大多数用户都选择微信或支付宝等移动支付软件。

短视频应用如雨后春笋般涌现。大多数网民都使用了短视频app(如快手、抖音等)来满足碎片化的娱乐需求。

直播引领了一种新的营销模式。直播造就了大量的网络主播,这些主播通过直播开启了新的网络营销模式。

在线政府app得到了大力发展。支付宝、微信等提供了城市服务平台,与政府服务对接。

企业开始向智能制造转型。工业互联网在软件和硬件方面为物联网提供了完整的解决方案战略,帮助企业从“制造”向“智能制造”转型。

计算机和互联网深刻地影响了人们生活和工作的方方面面。而这一切都离不开它背后的神秘“巨人”——分布式系统。正是这些看不见的分布式系统每天处理数亿次计算,并提供可靠稳定的服务。

那么什么是分布式系统呢?

《分布式系统的原理和模型》一书对分布式系统的定义如下:“分布式系统是几个独立计算机的集合,对用户来说就像一个单独的相关系统”。有两种含义。

硬件独立性。

软件是统一的。

什么是硬件独立性?所谓硬件独立,就是指计算机本身是独立的。一个大型分布式系统将由几个独立的计算机组成,以形成系统基础设施。

一方面,软件统一意味着对用户来说,他们就像在处理一个单一的系统。这就像每天在线观看视频。视频网站是用户的系统软件。它们的工作方式、部署的服务器数量以及每台服务器的功能对用户来说是不可见的。用户不关心他们背后的服务器。用户关心的是他们今天访问的网站可以提供什么样的程序,视频运行是否顺畅,以及它的清晰程度。另一方面,这意味着分布式系统易于扩展和升级。分布式系统中某些节点的故障不会影响整个系统的可用性。当用户与app交互时,他们不会知道正在更换或修复的部件,也不会知道新部件。

分布式系统的特点是什么?

分布式系统的特点主要体现在以下六个方面。

1.可用性系统的可用性是指系统在各种异常情况下正确提供服务的能力。系统可用性可以通过系统停止服务的时间与系统正常服务的时间之比,或者通过功能的失败次数与成功次数之比来衡量。可用性是分布式系统的一个重要指标,它衡量系统的鲁棒性并反映系统的容错能力。分布式系统使用多拷贝模式来实现系统的高可用性。

2.可扩展性系统的可扩展性是指分布式系统的特性,通过扩展集群机器的大小来提高系统性能(吞吐量、延迟、并发性)、存储容量和计算能力。

可扩展性是分布式系统的一个独特特性。分布式系统设计的初衷是利用集群计算机的能力来处理单台计算机无法解决的问题。当任务需求随着特定业务的增加而增加时,除了升级系统的性能,另一种方法是通过增加机器数量来扩大系统的规模。一个好的分布式系统总是追求“线性可伸缩性”,这意味着系统的某个指标可以随着集群中机器数量的增加而线性增长。

3.高度并发分布式系统的目的是更好地共享资源。然后,系统中的每个资源都必须设计为在并发环境中是安全的。

4.交易