第六周总结

发布于: 2020 年 07 月 15 日

一、数据分片

解决单表的访问压力和存储压力

概念:将一张表拆分成若干片,分布到多个服务器上;

挑战:

  • 需要大量的额外代码,处理逻辑因此变得更加复杂

  • 无法执行多分片的联合查询

  • 无法使用数据库事务

  • 随着数据的增加,如何增加更多的服务器 --- 伸缩性,扩容

分布式数据库中间件(Mycat)

如何做集群的伸缩

单服务单数据库

单服务数据库主从

业务分服务和分库

业务划分+单业务主从复制+分片

二、NoSQL

1、CAP原理

一致性(Consisitency):每次读取的数据都应该是最近写入的数据或者返回一个错误,而不是过期数据,也就是说,数据是一致性的;

可用性(Availability):每次请求都应该得到一个相应,而不是返回一个错误或者失去响应,不过这个响应不需要保证数据是最近写入的,也就是说系统需要一直都是可以正常使用的,不会引起调用者的异常,但是并不保证响应的数据是最新的;

分区耐受性(Partition tolerance): 即使因为网络原因,部分服务器节点之间消息丢失或者延迟了,系统依然应该是可以操作的

2、最终一致性

  • 根据时间戳,最后写入覆盖

  • 客户端冲突解决,业务上进行解决

  • 投票解决冲突(写入三个节点,大于等于2个节点成功才返回)

3、Hbase架构

4、ACID与BASE

  • 关系型数据库ACID的概念

  • 原子性(Atomicity)

  • NoSql数据库BASE的概念

  • 基本可用(Basically Available): 系统在出现不可预知的故障时,允许损失部分可用性,如响应时间上的损失或者功能上的损失

5、NoSql数据库案例(Doris — 海量KV Engine)

用户头像

考尔菲德

关注

还未添加个人签名 2018.04.19 加入

还未添加个人简介

评论

发布
暂无评论
第六周总结