System Design 学习笔记1

Posted Harpsichord1207

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了System Design 学习笔记1相关的知识,希望对你有一定的参考价值。

本文是GitHub热门项目系统设计入门的学习笔记第1篇,本篇记录了Anki记忆软件和一些基本的理论概念。

工具

Anki

Anki是一个卡片式的用于帮助记忆的软件,它的数据文件是以.apkg结尾的,这种数据文件叫做抽认卡堆。系统设计入门里提供了抽认卡堆,帮助我们记忆一些核心概念,我们可以在手机上或者电脑上下载一个Anki并打开抽认卡堆。目前系统设计入门里提供的抽认卡堆都是英文的。

基本概念

可扩展性(Scalability)

简单来说,如果系统的性能(Performance)的增长与资源的增加是成比例的,服务就是可扩展的。另一个角度来看待性能与可扩展性:

  • 如果你的系统有性能问题,对于单个用户来说是缓慢的;
  • 如果你的系统有可扩展性问题,单个用户较快但在高负载下会变慢;

CAP理论

在一个分布式计算系统中,只能同时满足下列的两点:

  • 一致性(Consistency):每次访问都能获得最新数据但可能会收到错误响应
  • 可用性(Availability): 每次访问都能收到非错响应,但不保证获取到最新数据
  • 分区容错性(Partition Tolerance): 在任意分区网络故障的情况下系统仍能继续运行

这里没有举例子,因此感觉对于之前没有概念的人来说不太好理解,推荐再看一下这篇【CAP 理论常被解释为一种“三选二”定律,这是否是一种误解】。

一致性模式

  • 弱一致性
  • 最终一致性
  • 强一致性

可用性模式

  • 故障切换

    • Active-Passive
    • Active-Active
  • 复制

    • 主-从
    • 主-主

以上是关于System Design 学习笔记1的主要内容,如果未能解决你的问题,请参考以下文章

Android学习笔记--design包下的两个控件

学习笔记设计算法(Design Algorithm)

学习笔记设计算法(Design Algorithm)

Material Design学习笔记

Ant Design of Vue @1.7.8 学习笔记(Vue2版本)

机器学习- 吴恩达Andrew Ng Week6 知识总结 Machine Learning System Design