NoSQL 分布式模型(一 分片)

本文深入探讨NoSQL数据库的分片技术,解释了分片的概念、原理及其在提升读写效率、应对单点故障方面的优势。同时也分析了分片可能带来的错误恢复能力降低的问题,并提出合理的分片策略,包括面向聚合的数据库设计、负载均衡以及自动化分片管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NoSQL出现的主要原因:

数据库集群水平扩展

 

数据分布:

1 复制  :将同一份数据拷贝到多个节点,a 主从式 b 对等式

2 分片 : 将不同数据存放在不同节点中

两者可选其中之一,也可同时使用

 

单一服务器:

可接受单点故障时使用

分片:

什么是分片:What

将数据的各个部分存放于不同服务器:

1 写:哪个数据应该写在哪个服务器可以通过:取模等算法确定
2 读:读数据时也要根据该算法确定数据在哪个服务器上,请求该服务器

为什么用分片:Why

分片优势

1 提升读取、写入效率

2 单节点故障,其他节点依旧可用,异地多活(如果有节点存全量数据 则故障节点自动摘除指向全量节点即可)

分片劣势

降低错误恢复能力:将一台机器拆分出多个分片。多个机器比一个机器故障概率高。

如何使用分片更加合理: How

1 理想情况:每个用户只需要与一台服务器通信

为了实现理想情况,需要同时访问的数据都在同一个节点上。怎么存放数据来保证用户只需从一个节点获取数据?

答案:使用面相聚合的数据库,把经常需要同时访问的数据放在一起。

比如外卖系统,运单按城市维度分片(写),调度时按城市维度调度(读) 只请求一个分片节点即可

2 负载均衡

把聚合数据均匀地分布在各个节点中,不同节点间处理的负载量相等。

3 分片策略

用户代码逻辑实现:应用程序代码与数据存储逻辑耦合。如需增加分片需要1 修改代码  2 迁移数据

中间件自动分片:中间件自己负责吧数据分布到各分片上,减少应用程序代码修改的开销。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值