写点什么

分布式数据库

用户头像
ruettiger
关注
发布于: 2020 年 07 月 15 日

1.数据库备份


主从复制


主主复制


2.数据库分片


当数据库数据过大时候需要分片


写操作的压力特别大


分片方法:


1)硬编码实现数据分片,例如奇数和偶数分配


2)映射表外部存储:相对于硬编码方式更加灵活,但是不常用原因在于:多一次数据库访问,复杂性增加


3)分布式数据库中间件


3.如何做分布式数据库集群的伸缩


数据迁移:采用余数 hash,数据库分片,取模之后迁移对应的片


4.数据库部署方案


1)单一服务器


2)读写分离:主从复制实现伸缩


3)业务分库:对应业务拆分服务器,不同的数据库部署到不同的服务器上,供不同的客户端去访问


4)综合部署方案:根据业务情况对不同的业务服务器进行不同处理:例如访问压力小的不需要分片,访问压力大的分片主从复制等


5.CAP 原理


数据库分片的指导性原理:


C(Consistency):一致性


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


A(Availability):可用性


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


P(Partition tolerance):分区耐受性


即使因为网络的原因,部分服务器节点之间消息丢失或者延迟了,系统依然应该是可以操作的。


三者是不能同时满足的,满足分区耐受性的情况下,可用性和一致性是无法同时满足的


最终一致性:


最终写一致:时间戳


客户端解决冲突


投票决定解决冲突


Hbase 架构如何缓解 cap:一致性高,可用性差


ACID 与 BASE


NoSQL


Doris - 海量 KV Engine


关键技术点-数据分区

基于虚拟节点的分区算法


用户头像

ruettiger

关注

还未添加个人签名 2018.05.30 加入

还未添加个人简介

评论

发布
暂无评论
分布式数据库