分布式系统研究泛型模板

概述

世界上很多种分布式系统,如分布式文件系统,分布式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)

故障类型,进程恢复,可靠通信,组通信(原子多播),分布式提交,恢复,故障检测

安全

安全通道,访问控制,安全管理

推荐书籍

《分布式系统原理与泛型》第二版和第三版

《分布式系统概念与设计》

《数据库系统内幕》

《数据密集型应用系统设计》