架构师训练营第 6 周学习总结
分布式数据库
* MySQL主从复制
* 分摊负载
* 专机专用
* 便于冷备
* 读取高可用
* MySQL主主复制
* 不能并发写入
* 不能增加写的并发能力
* 更改表结构会有同步延迟
* 数据分片
* 硬编码实现
* 映射表外部存储
* 分布式数据库中间件Cobar
* SQL解析模块
* SQL路由模块
* SQL执行代理模块
* 结果合并模块
* 集群伸缩
* 提前规划比较多的服务器
* 扩容时通过主从复制迁移数据
* 更改数据库连接对应的IP地址
NoSQL
* CAP 定理
* Consistency
Every read receives the most recent write or an error
* Availability
Every request receives a (non-error) response, without the guarantee that it contains the most recent write
* Partition tolerance
The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes
* 最终一致性
* 以最后写入为准
* 客户端解决冲突
* 投票解决冲突
分布式一致性算法
* Paxos算法
* Prepare阶段(Prepare - Promise)
* Accept阶段 (Propose - Accept)
* Learn阶段
* Zab协议
* Leader发起提案,多数Follower接收后,提交更改
搜索引擎
* 爬虫系统
* 待下载队列
* 已下载集合
* 倒排索引
* Key:单词,Value:文档+词频+位置
* Lucene索引文件准实时更新 - 索引分段 + 段合并
* ElasticSearch
* 索引分片
* 索引备份
Doris案例分析
* 基于虚拟节点的分区算法
* 高可用设计
* 临时失效的fail over
* 备份节点做日志写入
* 恢复时只写不读
* 永久失效的fail over
* 新节点恢复时写入备份节点
* 失效恢复时重做日志
* 扩容伸缩
* 当前group停止读写,迁移数据后进入失效恢复
评论