分布式业务系统设计的时候,基本的问题有:
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。