写点什么

架构师训练营第六周学习总结

用户头像
文智
关注
发布于: 2020 年 11 月 01 日

分布式数据库

  • 分布式数据库可以通过主从复制、一主多从、主主复制的架构,来实现高可用,以及提高系统读并发能力

  • 可以通过数据分片提高系统并发处理能力,以及系统存储能力

  • 数据分片后无法直接执行多分片联合查询,也无法使用数据库事务,可以使用Cobar等分布式数据库中间件代理数据库操作,通过SQL解析、路由、查询结果合并实现多分片读写查询

  • 分布式数据库集群伸缩必须有数据迁移,实践过程中,可以在初始阶段创建较大基数的数据库实例,这些实例通过hash余数等算法映射部署至不同服务器,服务器数量调整时,只需迁移部分数据库实例,调整这部分数据库实例对应的数据连接的IP地址

CAP原理

  • 分布式数据库的三个要素:一致性Consistency,可用性Available,分区耐受性Partition tolerance

  • 在分布式系统必须要满足分区耐受性的前提下,可用性和一致性无法同时满足

  • 由于数据同步存在延迟,系统允许存在短暂的数据不一致,但数据同步完成后,所有服务器的数据必须是最终一致的

ZooKeeper

  • 分布式一致性算法Paxos:

  • 第一阶段:Prepare 阶段。Proposer 向Acceptors 发出Prepare 请求,Acceptors 针对收到的Prepare 请求进行Promise 承诺。

  • 第二阶段:Accept 阶段。Proposer 收到多数Acceptors 承诺的Promise 后,向Acceptors 发出Propose 请求,Acceptors 针对收到的Propose 请求进行Accept 处理。

  • 第三阶段:Learn 阶段。Proposer 在收到多数Acceptors 的Accept 之后,标志着本次Accept 成功,决议形成,将形成的决议发送给所有Learners。

  • ZooKeeper的Zab协议简化了Paxos算法,由Leader发起Propose,Follower返回ACK,再由Leader发起Commit,最终保证所有Follower的状态是一致的

  • ZooKeeper可以应用于选举主主集群的Master服务器,从而保证所有访问都能正确的识别主服务器,同时,ZooKeeper也可以通过共享集群节点的状态,管理集群的负载均衡和失效转移

搜索引擎

  • 互联网搜索引擎的核心技术是网络爬虫和倒排索引

  • 倒排索引通过维持词对应的文档列表,能迅速通过查询词获取相应文档

  • Lucense架构通过将索引文件分段的方式,实现实时索引更新

  • ElasticSearch封装Lucense架构,并通过类似数据库分片的索引分片,实现分布式架构

Doris案例分析

  • 该案例展示创新技术产品如何推动落地的过程,设计的要点有:

  • 当前现状

  • 产品需求

  • 产品目标

  • 技术指标

  • 逻辑架构

  • 关键技术点

  • 产品规划

  • 该案例演示了NoSQL数据库集群的高可用实现和集群伸缩方案

  • 高可用方案核心在于服务器分组,同时对所有分组写入,从任一分组读取,服务器失效时启用临时log服务器替代失效服务器完成写入,在失效恢复后从log服务器将新数据迁移回原服务器

  • 集群伸缩方案得益于虚拟节点架构,数据迁移只需拷贝数据文件,扩容时对两个分组依次进行以下操作:将整个分组标记为临时失效,启用log服务器临时写入,增加物理节点后重新计算分配虚拟节点(包括数据的迁移),然后启动失效恢复流程从log服务器迁移新数据、



发布于: 2020 年 11 月 01 日阅读数: 38
用户头像

文智

关注

还未添加个人签名 2018.11.29 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第六周学习总结