写点什么

技术选型(二)

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

本周是跟随李智慧老师学习架构师训练营的第 6 周,现将本周主要内容总结如下:

分布式数据库

mysql:一主多从,主主复制(一主一从,互为主从,通过 keepalived 对外暴露虚拟 ip)

数据分片:

1.客户端通过硬编码实现数据分片

2.通过映射表实现数据分片

3.数据库中间件。可预先做好规划,例如未来可能需 100 台数据库实例,目前只有 2 台服务器,每台服务器上部署 50 个实例,扩容服务器时将一部分数据库实例迁移至新机器上,客户端只需要变更相应的 IP 地址即可。还可以通过 2n 的方式进行扩容,即每次扩容两为原先的 2 倍。

CAP 原理:可用性、Consistency 一致性、分区耐受性。只能满足其中的两点。

一致性 Consistency:每次读到最新数据或返回一个错误

可用性 Availability:系统一直可用,不会引起调用者异常,但不保证相应数据是最新的。

分区耐受性 Partition tolerance:即使因为网络原因,某些节点之间失去消息或延迟了,系统依然是可操作的。

BASE 理论:

基本可用(Basically Available ):系统出现故障时,允许损失部分可用性,例如相应时间增加、部分功能不可用。

软状态(Soft state):允许系统存在中间中台,并不影响系统的整体可用性。即数据同步过程中允许存在延迟。

最终一致性(Eventually consistence):系统中的所有数据副本经过一定时间的同步后能够达到最终一致的状态。

最终一致性写冲突:

1.根据时间戳覆盖

2.投票解决

脑裂:不同服务器获得了相互冲突的数据信息或执行指令,导致整个集群陷入混乱,数据损坏。

搜索引擎:elastatic serach、lucene、solar

爬虫禁止协议

倒排索引:一般的索引是一个文档中包含某个词,倒排索引记录的是包含某个词的文档,可同时记录词频、位置等信息用于排序。

Lucene 索引更新:将索引文件拆分成多个子文件,每个子文件称为一个段。每个段可以独立搜索,最后合并搜索结果。

新增:原来段不变,新增一个段来记录新增数据。

删除:增加一个.del 的文件,记录删除的数据,原来的依旧可以搜索到,合并时过滤掉删除的数据。

修改:记录删除和新增。

定期段合并。


作业一(至少完成一项):

  1. 请简述 CAP 原理。

  2. 针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。


CAP 理论:一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance),也称为 CAP 不可能三角。一致性是指:对于客户端请求,不论访问的是哪一个节点,要么得到最新写入的数据,要么得到错误的响应,一致性保证的是数据的正确性。可用性是指:对于客户端请求,不论访问的是哪一个非故障节点,都能得到响应数据,而不会得到错误的响应,但并不保证得到的响应数据是最新的。可用性保证的是服务的可用性,不保证数据的正确性。分区容错性是指:节点间出现任意数量的消息丢失或高延时的时候,系统仍能继续工作。分布式系统中只能保证其中的两项,CAP 不可能三角由埃里克.布鲁尔(Eric Brewer)提出,由赛斯.吉尔伯特(Seth Gilbert)和南希.林奇(Nancy Lynch)证明。一般的分布式系统中分区容错性是必须要考虑的。


用户头像

wing

关注

还未添加个人签名 2018.05.13 加入

还未添加个人简介

评论

发布
暂无评论
技术选型(二)