概述
世界上很多种分布式系统,如分布式文件系统,分布式KV,Google三驾马车,dynamo,newsql,分布式应用系统(微服务与SOA),WWW等等,每种分布式系统种类不同,但是面临的问题类似,这里总结研究这些系统面临的共同话题,以便于研究新系统时候能够举一反三。泛型出自《分布式系统原理与泛型》这本书。当我们面临一个新的分布式系统时候,通过这些角度思考,能对系统有更深理解。
总览
分布式系统的抽象 | 问题 |
---|---|
系统体系结构 | 系统体系结构是什么? 静态和动态视图是什么? 系统接口是什么? |
进程 | 进程模型是什么? 有哪些核心进程? 系统参与者有哪些? 进程可能奔溃? 进程如何工作完成系统功能? |
通信 | 系统间如何通信? 系统对外如何通信? 同步还是异步? 传递保证是什么? |
命名 | 如何找到资源? |
协调 | 进程间如何同步和协作? 如何互斥? 如何达成共识? |
一致性和复制 | 一致性级别是什么? 复制过程是什么?(写入,副本更新,读取过程是什么?) 数据分区过程是什么? |
容错性 | 如何检查故障? 故障恢复过程是什么? 网络分区怎么处理? 系统成员变动如何处理? 分布式提交过程是什么? |
安全 | 系统间通信安全如何保证? 系统安全如何保证? |
系统体系结构(Architecture)
系统结构:集中式,非集中式,混合式
系统风格:分层架构,面向对象和SOA架构,面向资源架构,发布订阅架构
进程(Process)
进程模型有多线程,单线程进程,有限状态机等内容
通信(Communication)
rpc
面向消息:AMQP
面向流
多播通信(应用层基于树的多播,flooding 多播,gossip data dissemination(传播))
命名(Naming)
名称,标识,地址,找到资源的方法
无层次命名:DHT,home-base,等级划分
结构化命名:NFS
基于属性命名:LDAP
协调(Coordination)
时钟同步:物理时钟
逻辑时钟:Lamport逻辑时钟,向量时钟
互斥:集中,非集中,分布式,令牌环
选举
一致性和复制(Consistency and Replication)
一致性协议,最终一致性,单调读,单调写,读写一致性,写读一致性,强最终一致性,线性一致性,顺序一致性,因果一致性等内容
复制:主从复制,多主复制,无主复制
容错性(Fault tolerance)
故障类型,进程恢复,可靠通信,组通信(原子多播),分布式提交,恢复,故障检测
安全
安全通道,访问控制,安全管理
推荐书籍
《分布式系统原理与泛型》第二版和第三版
《分布式系统概念与设计》
《数据库系统内幕》
《数据密集型应用系统设计》