Posted by Yinode Blog on Monday, January 1, 0001

TOC

分布式系统

intro

什么是分布式系统

为什么要用分布式系统

可伸缩性

分布式系统中涉及到的基础架构

抽象层面

  • 存储
  • 通信
  • 计算

实现层面

  • 线程
  • 并发控制
  • RPC

分布式系统中的一些关注点

性能

  • 伸缩性 2x的机器应该提供2x的性能

容错

任何节点都可能出错 崩溃

  • 可访问性
  • 可恢复性

一致性

  • 强一致性 同一时刻所有节点都访问到相同数据
  • 弱一致性 允许同一时刻访问到不同的数据 更为常用

RPC and Threads

Threads

使用线程的理由

  • IO并发
  • 多核并行
  • 比起RPC更为简单

事件驱动

事件驱动无法真正意义上完全驱动多核CPU,事件驱动可以用低廉的成本带来IO层面的高并发,但是并不适合重CPU程序

协程

协程一般构建在语言层面上,与事件驱动类似,无法实现并行,但能够实现并发

GFS

Big Storage

难点

  • 性能 - 分片
  • 自动化的容错机制
  • 容错机制需要我们实现数据冗余
  • 数据冗余需要创建多个副本 多个副本要求实现一致性
  • 而过于频繁的同步又会导致性能降低