docker学习(九、分布式存储亿级数据知识)

docker学习(九、分布式存储亿级数据知识)

  • 一、哈希取余分区
  • 二、一致性哈希算法分区
  • 三、哈希槽分区(重点)

内容整体是以Redis做分布式为例的~~~先出理论,后出实践docker操作

一、哈希取余分区

举个例子:目前有2亿条数据存储在Redis数据库中,使用分布式多台机器存储。
如果是3台机器构成的一个集群,用户每次读写都会根据公式hash(key)%N获取到要映射的机器位置。
在这里插入图片描述

优点:
简单粗暴,直接有效,只需要预估好数据规划好节点即可。通过hash算法让固定的一部分请求落到同一台服务器上,这样就起到了负载均衡+分而治之的效果了。
缺点:
扩容或者缩减的时候,节点会有所变化,映射关系需要重新计算。取模公式N也会变化,导致数据需要重新洗牌。

二、一致性哈希算法分区

一致性哈希算法将整个哈希空间(通常是一个圆环)划分为多个虚拟节点,并将这些虚拟节点映射到物理节点上。每个物理节点负责一定范围内的哈希空间。
将所有的存储节点排列在首位相接的Hash换上,每个Key在计算Hash后会在哈希环上顺时针查找最近的虚拟节点存放。而当节点加入或退出时仅影响节点在Hash环上顺时针相邻最近的节点
在这里插入图片描述

优点:

  • 容错性:假设节点B宕机,可以看到此时只有B被重定向到C。如果一台服务器不可用,则受影响的数据仅仅是此服务器到其换空间中前一台服务器(逆时针最近的一台)之间数据,其他不会受影响
  • 扩展性:增加一个节点X,例如在AB之间,那受到影响的只有A到X之间的数据,重新把A到X的数据录入到X上即可,不会导致hash取余全部数据重新洗牌。

总结起来就是加入和删除节点只影响哈希环顺时针方向的相邻节点,对其他节点无影响。

缺点:

  • Has环节点太少时,容易因为节点分布不均匀导致数据倾斜(被缓存的对象大部分集中在了某一台服务器上)问题。

数据的分布和节点位置有关,节点不均匀时,数据在进行存储时也可能达不到均匀分布的效果。

三、哈希槽分区(重点)

哈希槽实质是一个数组[0, 2 14 − 1 2^{14} -1 2141]形成的hash slot空间。
在这里插入图片描述

作用:
解决均匀分配问题,在数据和节点之间又加了一层,把这个层叫做哈希槽(slot),用于管理数据和节点之间的关系,现在相当于节点上放的是槽里放的是数据

  • 槽解决的是粒度问题,相当于把粒度变大,便于移动数据。
  • 哈希解决的是映射问题,使用key的哈希值来计算所在的槽,便于数据分配。

槽的个数:
一个集群只能有16384个槽,编号0~16383(0 ~ 2 14 − 1 2^{14} -1 2141)。

解决槽和节点的关系:
可以直接指定槽的编号分配给集群的某个主节点。

解决数据移动问题:
对key求哈希值,然后对16384取余,余数是几就落入对应的槽里。slot=CRC16(key)%16384。以槽为单位移动数据,因为槽的数目是固定的,处理起来比较容易,这样移动数据问题就解决了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/278665.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RT-DETR优化:ASF-YOLO提取多尺度特征 | 2023年12月最新成果

🚀🚀🚀本文改进: ASF-YOLO一种新的特征融合网络架构,该网络由两个主要的组件网络组成,可以为小目标分割提供互补的信息:(1)SSFF模块,它结合了来自u;(2)TFE模块,它可以捕获小目标的局部精细细节等 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学…

为什么 GAN 不好训练

为什么 GAN 不好训练?先看 GAN 的损失: 当生成器固定时,堆D(x)求导,推理得到(加号右边先对log求导,再对负项求导) 然后在面对最优Discriminator时,Generator的优化目标就变成了&…

Linux--Docker容器(1)

这里写目录标题 简介名词解释作用 指令在本地创建容器的过程:(这里以tomcat为例)访问容器端口映射目录挂载验证端口映射验证目录挂载 删除镜像多小组访问容器mysql容器 简介 名词解释 Docker镜像:可以将镜像理解为面向对象的类&a…

CLIP 对比学习 源码理解快速学习

最快的学习方法,理清思路,找视频讲解,看源码逻辑: CLIP 源码讲解 唐宇 输入: 图像-文本成对配对的数据 训练模型的过程(自己理解): 怎么做的?:利用数据内部…

使用opencv的Laplacian算子实现图像边缘检测

1 边缘检测介绍 图像边缘检测技术是图像处理和计算机视觉等领域最基本的问题,也是经典的技术难题之一。如何快速、精确地提取图像边缘信息,一直是国内外的研究热点,同时边缘的检测也是图像处理中的一个难题。早期的经典算法包括边缘算子方法…

人工智能与星际旅程:技术前沿与未来展望

人工智能与星际旅程:技术前沿与未来展望 一、引言 随着科技的飞速发展,人工智能(AI)在各个领域的应用越来越广泛。在星际旅程领域,AI也发挥着越来越重要的作用。本文将探讨人工智能与星际旅程的结合,以及…

在开发微信小程序的时候,报错navigateBack:fail cannot navigate back at firstpage

这个错误的意思是:在这个页面已经是第一个页面了,没办法再返回了 报错原因 这个错误原因其实也简单,就是在跳转的时候使用了wx.redirectTo(),使用wx.redirectTo()相当于重定向,不算是从上一个页面跳转过来的&#xf…

【网络安全】HTTP Slowloris攻击原理解析

文章目录 Slowloris攻击的概念Slowloris攻击原理Slowloris攻击的步骤其他的DDoS攻击类型UDP FloodICMP (Ping) FloodSYN FloodPing of DeathNTP AmplificationHTTP FloodZero-day DDoS 攻击 推荐阅读 Slowloris攻击的概念 Slowloris是在2009年由著名Web安全专家RSnake提出的一…

C# WPF上位机开发(属性页面的设计)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在软件开发中,属性或者参数设置是很重要的一个部分。这个时候如果不想通过动态添加控件的方法来处理的话,那么可以通过tab控…

ACT、NAT、NATPT和EASY-IP

目录 一、ACL 1.ACL 2.ACL的两种应用匹配机制 3.ACL的基本类型 4.ACL命令操作 5.ACL实验: 4.ACL的应用原则: 5.匹配原则: 二、NAT 1.NAT的原理及作用: 2.NAT分类 3.NAT配置 三、EASY-ip实验 四、NATPT 五、通配符 …

垃圾回收 (GC) 在 .NET Core 中是如何工作的?

提起GC大家肯定不陌生,但是让大家是说一下GC是怎么运行的,可能大多数人都不太清楚,这也很正常,因为GC这东西在.NET基本不用开发者关注,它是依靠程序自动判断来释放托管堆的,我们基本不需要主动调用Collect(…

抖音视频解析,无水印解析下载抖音视频

抖音视频解析,你是否经常遇到这样的情况,看到一些非常精彩的抖音视频,想要保存下来,但因为下载速度慢或者视频带有水印而感到困扰?那么,这款(抖音无水印解析工具)将是你的得力助手&a…