本文是 GitHub 热门我的项目零碎设计入门的学习笔记第 1 篇,本篇记录了 Anki 记忆软件和一些根本的实践概念。
工具
Anki
Anki 是一个卡片式的用于帮忙记忆的软件,它的数据文件是以.apkg 结尾的,这种数据文件叫做抽认卡堆。零碎设计入门里提供了抽认卡堆,帮忙咱们记忆一些外围概念,咱们能够在手机上或者电脑上下载一个 Anki 并关上抽认卡堆。目前零碎设计入门里提供的抽认卡堆都是英文的。
基本概念
可扩展性(Scalability)
简略来说,如果零碎的性能 (Performance) 的增长与资源的减少是成比例的,服务就是可扩大的。另一个角度来对待性能与可扩展性:
- 如果你的零碎有性能问题,对于单个用户来说是迟缓的;
- 如果你的零碎有可扩展性问题,单个用户较快但在高负载下会变慢;
CAP 实践
在一个分布式计算零碎中,只能同时满足下列的两点:
- 一致性(Consistency):每次拜访都能取得最新数据但可能会收到谬误响应
- 可用性(Availability): 每次拜访都能收到非错响应,但不保障获取到最新数据
- 分区容错性(Partition Tolerance): 在任意分区网络故障的状况下零碎仍能持续运行
这里没有举例子,因而感觉对于之前没有概念的人来说不太好了解,举荐再看一下这篇【CAP 实践常被解释为一种“三选二”定律,这是否是一种误会】。
一致性模式
- 弱一致性
- 最终一致性
- 强一致性
可用性模式
-
故障切换
- Active-Passive
- Active-Active
-
复制
- 主 - 从
- 主 - 主