后端学习笔记 day4

1.分区和复制的区别

复制是相同的数据在多个节点冗余,比如我们都备份相同的连城诀的完整版,分区是我们各存储一部分,比如连城诀分成上中下三部,我们师兄弟三人分别存储, 结合分区和复制就是比如每人存储2/3,既有分区也有复制。

2.key value数据确定处于哪个分区的方法

一种是利用关键字的区间分区,这种分区方法不能按照关键字平分,而应根据数据的特性或手工设置;一种是利用对关键字哈希之后再存储。

区间分区的好处是支持区间查询,哈希分区虽然让负载更加均衡但是不能支持区间查找,这种查找的使用还是很常见的,比如查找某个用户这个月的点赞数据。

3.分区和节点的对应方法

有固定分区法,固定每个分区在哪个节点;有动态分区法,根据分区的大小动态的调整。这两种方法都是一个节点可以对应多个分区。对于固定分区法,因为分区的数目已经固定,所以每个分区的大小和数据量成正比,且应该让数据尽量均匀。对于动态分区法,分区的大小通常有一个上限,当到达上限时就增加分区的数量,把一部分数据移动到其他节点。

4.复制的问题

在复制中问题主要是主从节点的协调,让从节点追赶主节点;多主节点的协调,多个主节点在一定的约束下防止写冲突;无主节点确保数据写入读出成功。这些主要是通信上面的问题,因为网络传输具有一定的延迟性,所以必须去处理不一致的问题。数据分区更多是关于某个数据在哪些节点的问题。

5.服务发现问题

服务发现是指因为我们对数据进行了分区处理,所以就不是任何节点都持有客户端希望访问的数据,客户端需要有办法知道数据在哪个节点。

服务发现可以在三个部分设置,一是随机访问节点,由该节点通知希望访问的数据所在节点;二是利用中间路由层去访问;三是客户端直接掌握路由信息。

总结:复制和分区是联系的内容,一部分主要和最终一致性有关,一部分是关注数据的分区方法,这是我感觉很重要的部分。

相关推荐
RainCity1 天前
Java Swing 自定义组件库分享(十二)
java·笔记·后端
AlfredZhao2 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐3 天前
Linux内存扩容指南
linux
zylyehuo4 天前
Linux 彻底且安全地删除文件
linux
用户805533698034 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297914 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者6 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo6 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10157 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao8 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone