第六周总结
6.1 分布式关系数据库(上)
MySQL 复制
MySQL 主从复制:主服务器提供读写功能,数据写入主服务器,从服务器读取主服务器 BinLog 进行同步,从服务器只提供读功能
- 一主一从
- 一主多从:分摊读压力,高可用
MySQL 主主复制:同一时刻,只能一台服务器提供写功能
MySQL 复制提高了读并发处理能力,没有提高写并发能力,也没有增加存储容量;更新表结构时会导致巨大的同步延迟
数据分片
分片目标:通过增加服务器,提高写并发处理能力,提高存储容量
分片特点:将数据按照一定的规则,均衡分配到多个服务器中存储
分片原理:多个数据同时写入到不同分片的服务器中,互不冲突
如何实现
应用硬编码
映射表
数据分片的缺点
提高了代码复杂度
无法执行多分片的联合查询
分片之间的事务难处理
数据路由算法复杂,需具备伸缩能力
6.2 分布式关系数据库(下)
分布式数据库中间件
Mycat
Cobar
6.3 CAP原理与NoSQL数据库架构
CAP
一致性(Consistency):每次读取,要么成功返回最新数据,要么失败返回错误
可用性(Availability):每次读取,都能获得数据,并不要求数据是最新的
分区容错性(Partition Tolerance):发生网络分区时,系统可以继续提供服务
网络是不可靠的,发生网络分区时,如果不满足分区容错性,即系统不提供服务了,那也没有一致性和可用性的选择了
Base
基本可用、软状态、最终一致
写冲突
以最新为准
客户端决定
节点投票
6.4 Zookeeper与分布式一致性架构
脑裂:一个集群节点分裂成两个独立的集群节点
分布式一致性算法:Paxos
Proposer
Acceptor
Learner
Zab 协议
Zookeeper 以树状目录结构存储数据
实现配置管理功能
实现集群选择功能
实现集群管理功能
6.5 搜索引擎的基本架构
搜索引擎
爬虫 + 倒排索引
ElasticSearch
索引分片,实现分布式
索引备份,实现高可用
API 更简单、更高级
6.6 NoSQL案例(一):Doris分析案例
当前现状
产品需求
产品目标
技术指标
逻辑架构
关键技术
基于虚拟节点的分区算法
6.7 Doris分析案例(二):高可用与集群扩容如何设计?
基本访问架构
集群管理
失效分级管理
6.8 Doris 分析案例(三):扩容伸缩是如何设计的?
扩容
版本规划
功能需求
研发计划
项目计划
实施计划
评论