乐趣区

关于系统设计:System-Design-学习笔记1

本文是 GitHub 热门我的项目零碎设计入门的学习笔记第 1 篇,本篇记录了 Anki 记忆软件和一些根本的实践概念。

工具

Anki

Anki 是一个卡片式的用于帮忙记忆的软件,它的数据文件是以.apkg 结尾的,这种数据文件叫做抽认卡堆。零碎设计入门里提供了抽认卡堆,帮忙咱们记忆一些外围概念,咱们能够在手机上或者电脑上下载一个 Anki 并关上抽认卡堆。目前零碎设计入门里提供的抽认卡堆都是英文的。

基本概念

可扩展性(Scalability)

简略来说,如果零碎的性能 (Performance) 的增长与资源的减少是成比例的,服务就是可扩大的。另一个角度来对待性能与可扩展性:

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

CAP 实践

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

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

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

一致性模式

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

可用性模式

  • 故障切换

    • Active-Passive
    • Active-Active
  • 复制

    • 主 - 从
    • 主 - 主
退出移动版