写点什么

分布式数据库

用户头像
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 加入

还未添加个人简介

评论

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