本文共 473 字,大约阅读时间需要 1 分钟。
分布式业务系统设计的时候,基本的问题有:
1. 高可用(High Availability)2. 可伸缩(Scalable-扩展的方法论:AKF scale cube)3. 可扩展(Extensibility)4. 容错性(弹力设计-Resilience) 5. 高性能(High Performace)6. 容量规划(Capacity Plan)
以上是最基本的业务诉求。
而在分布式基础系统设计的时候,基本的问题有:1. 体系结构2. 进程3. 通信4. 命名5. 同步6. 一致性与复制7. 容错性8. 安全性
两者互相影响且互相决定。
理解高可用和可伸缩核心要理解复制(Replication),比如mysql主从复制的binlog,redis主从复制,etcd基于raft的复制状态机的复制,在业务层如果设计为无状态,则复制会简单。可以说没有复制就没有高可用和可伸缩。对比扩展性与伸缩性:
下图总结了不同层次的高可用与可伸缩的手段。
来源:
转载于:https://blog.51cto.com/thinklili/2315387