第 6 周 作业 / 学习总结
作业:
1. 请简述 CAP 原理。
一致性(Consistency)
每次请求,不管访问哪个节点,得到的要么是绝对一致的最新写入的数据,要么读取失败。强调的是数据正确。
可用性 (Availability)
任何来自客户端的请求,不管访问哪个非故障节点,都能得到响应数据,但不保证是同一份最新数据。强调的是服务可用,但不保证数据正确。
分区容错性(Partition Tolerance)
当节点间出现任意数量的消息丢失或高延迟的时候,系统仍然在继续工作。强调的是集群对分区故障的容错能力。
CAP理论说的是对于一个分布式系统而言,一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)3 个指标不可兼得,只能在 3 个指标中选择 2 个。
CAP理论给我们的启发
分布式系统与单机系统不同,它涉及到多节点间的通讯和交互,节点间的分区故障是必然发生的。
只要有网络交互就一定会有延迟和数据丢失,而这种状况我们必须接受,还必须保证系统不能挂掉。分布式系统中,节点间的分区故障是必然发生的。分区容错性(P)是前提,是必须要保证的。
我们需要根据不同的业务场景,在数据一致性(ACID)和服务可用性(BASE)之间权衡。
2. 针对 Doris 案例,请用 UML 时序图描述 Doris 临时失效的处理过程(包括判断系统进入临时失效状态,临时失效中的读写过程,失效恢复过程)。
TODO。
学习总结:
分布式数据库技术
主主复制
提高数据库写的可用性,并不能提高写的能力
同一时间只向一个节点写入,同时复制给另外一个节点。当该节点瘫痪时,切换节点,能够保证写操作继续进行
数据分片
解决单表数据量过大问题
预先做好schema规划,确定好schema数量。同一个数据库上可以有多个schema,扩容数据库时迁移schema到新的节点
分布式数据库中间件原理: 根据字段以及路由算法映射到不同的db
数据库压力大时优化方式
业务分库(优先)
数据分片(单表压力过大时, 对单表进行分片)
评论