分布式系统知识点总结

什么是分布式系统?

协调多个节点共同完成对外提供数据的存储、计算等服务的系统

分布式系统解决的问题

解决问题:可扩展性、容错、高可用、灾备

分布式系统重要概念

复制,分区,事务,数据一致性

复制

1. 复制概念

在不同机器上保存数据的副本,目的可能有保持用户与数据在地理位置靠近,部分节点故障系统可以继续运行提高可用性,扩展可用处理请求的机器提高可扩展性

2. 复制算法分类

有主(单主、多主)、无主
有主:同步异步复制,同步容易造成系统不可用,异步复制容易造成主从不一致,处理节点宕机,从库失效,追赶恢复,主库失效,故障切换,主库切换可能有数据不一致,脑裂的问题

3. 复制日志

基于语句,基于行,WAL

4. 复制延迟

读己之写,单调读,一致性前缀读

5. 多主复制
  • 多个数据中心(性能更好,容忍部分数据中心停机,容忍网络问题)
  • 处理写冲突(同步异步检测,避免冲突,收敛至一致的状态,自定义冲突解决逻辑(写时、读时))
  • 多主拓扑复制:环形、星型、all-to-all
6. 无主复制
  • 故障恢复数据:读修复(w+r>nw + r> n一定可以读取最新值)、反熵过程(后台运行数据检查和复制进程,将节点缺少的数据从其它节点复制过来)。
  • 检测并发写入冲突:最后写入胜利(丢弃并发写入)、合并同时写入的值、版本向量
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章