Contents
  1. 1. 网络分布式系统的设计原则
  2. 2. 基础
  3. 3. 快速可扩展的数据访问块

原版文章 [https://www.aosabook.org/en/distsys.html]

文章主要分为3个部分,讲了可扩展的分布式系统的设计方法。

网络分布式系统的设计原则

6个提到的主要原则
availablity,(可用性):对于一些电商等网站,只要有一阵不能访问,就会损失很多收益,保证可用性很重要。
performance,(性能):保证访问性能,让用户体验更好。
reliablity,(可靠性):保证每个请求都有返回。
scalability,(可扩展性):如果有大流量能保证可以方便的扩展性能。
managebility,(管理性):要易于管理,不然这块成本也很高。
cost,(费用):分布式本身需要很多机器,这块的成本也要考虑。

基础

基础的分布式设计方法,
services,(服务化)
redundancy,(冗余)
partitions,(分区)
handling failure,(处理错误)
举了一个例子,图片网盘,用户可以上传图片,然后读取图片。
首先服务化,将读与写的服务,分开单独优化,因为两边优化的方式不同。
然后冗余处理,将存储的数据,冗余备份,服务冗余。
然后将数据分区,读取不同分区的数据,减少单个的压力。

快速可扩展的数据访问块

这块主要将如何加快数据的访问,5个方面
Caches,global cache,Distributed Cache,
proxies,
Indexes,
load balancers,
queues,
首先是缓存,这个还分为,本地缓存,全局缓存,分布式缓存。
第二部分是代理,这个可以重定向请求。
第三个是索引,类似数据库索引,可以加快数据的访问。
第四个是负载均衡,可以分散请求的压力
第五个是消息队列,可以异步处理,将每个单独调用的任务执行,解耦到消息队列里面,慢慢处理,压力不在后端。

Contents
  1. 1. 网络分布式系统的设计原则
  2. 2. 基础
  3. 3. 快速可扩展的数据访问块