分布式业务系统设计的时候,基本的问题有:
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的复制状态机的复制,在业务层如果设计为无状态,则复制会简单。可以说没有复制就没有高可用和可伸缩。
对比扩展性与伸缩性:
下图总结了不同层次的高可用与可伸缩的手段。
来源:http://www.cnblogs.com/xingzc/p/5757758.html
https://wenku.baidu.com/view/5ffbfa2fae1ffc4ffe4733687e21af45b207fe59.html
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。