分布式系统开发实战
上QQ阅读APP看书,第一时间看更新

1.1 什么是分布式系统

自20世纪40年代计算机诞生以来,计算机以及互联网呈现出高速发展的趋势。当今的互联网包含以下特征。

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

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

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

·短视频应用异军突起。大多数网民都曾使用过短视频应用(比如快手、抖音等),以满足碎片化的娱乐需求。

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

·在线政务应用大力发展。支付宝、微信等均提供了城市服务平台以对接政务服务。

·企业开始转型生产智造。工业互联网提供了完整的软硬件物联网解决策略,帮助企业从“制造”转型到“智造”。

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

那么什么是分布式系统?

《分布式系统原理与范型》一书中是这样定义分布式系统的:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统”。

这里面包含了两个含义。

·硬件独立。

·软件统一。

什么是硬件独立?所谓硬件独立,是指计算机本身是独立的。一个大型的分布式系统,会由若干台独立的计算机来组成系统的基础设施。

而软件统一,一方面是指对于用户来说,用户就像是与单个系统打交道。这就好比用户每天上网看视频,视频网站对用户来说就是一个系统软件,它们背后是如何运作的,部署了几台服务器,每台服务器是干什么的,这些对用户来说是不可见的。用户不关心背后的这些服务器,用户所关心的是,今天访问的这个网站能提供什么样的节目,视频运行是否流畅、清晰度如何等。另一方面是指分布式系统的扩展和升级都比较容易。分布式系统中的某些节点发生故障,不会影响整体系统的可用性。用户和应用程序交互时,不会察觉哪些部分正在被替换或者维修,也不会感知到新加入的部分。