当前位置: 首页 > news >正文

wordpress 分类目录树/石家庄seo管理

wordpress 分类目录树,石家庄seo管理,志愿者网站时长码怎么做,黑群晖做php网站当我们在做数据库分库分表或者是分布式缓存时,不可避免的都会遇到一个问题:如何将数据均匀的分散到各个节点中,并且尽量的在加减节点时能使受影响的数据最少。Hash 取模随机放置就不说了,会带来很多问题。通常最容易想到的方案就是 hash 取模…

当我们在做数据库分库分表或者是分布式缓存时,不可避免的都会遇到一个问题:

如何将数据均匀的分散到各个节点中,并且尽量的在加减节点时能使受影响的数据最少。

Hash 取模

随机放置就不说了,会带来很多问题。通常最容易想到的方案就是 hash 取模了。

我们可以将传入的 Key 按照 index = hash(key) % N 这样来计算出需要存放的节点。其中 hash 函数是一个将字符串转换为正整数的哈希映射方法,N 就是节点的数量。

这样可以满足数据的均匀分配,但是这个算法的容错性和扩展性都较差。

比如增加或删除了一个节点时,所有的 Key 都需要重新计算,显然这样成本较高,为此需要一个算法满足分布均匀同时也要有良好的容错性和拓展性。

一致 Hash 算法

一致 Hash 算法是将所有的哈希值构成了一个环,其范围在 0 ~ 2^32-1。

如下图

abf051d1c580cd7c24a39fd8540c0fab.png

之后将各个节点散列到这个环上,可以用节点的 IP、hostname 这样的唯一性字段作为 Key 进行 hash(key),散列之后如下:

93ed154213c1ade4069d1c57726a259f.png

之后需要将数据定位到对应的节点上,使用同样的 hash 函数 将 Key 也映射到这个环上。

10b0fdf0893d4db1fe62a2ffca007595.png

这样按照顺时针方向就可以把 k1 定位到 N1节点,k2 定位到 N3节点,k3 定位到 N2节点。

容错性

这时假设 N1 宕机了:

07e6e1847f61acd68a6f1e09bdb140b7.png

依然根据顺时针方向,k2 和 k3 保持不变,只有 k1 被重新映射到了 N3。

这样就很好的保证了容错性,当一个节点宕机时只会影响到少少部分的数据。

拓展性

当新增一个节点时:

d45e8ec3fc909239a3e634fd69a7d8c4.png

在 N2 和 N3 之间新增了一个节点 N4 ,这时会发现受印象的数据只有 k3,其余数据也是保持不变,所以这样也很好的保证了拓展性。

虚拟节点

到目前为止该算法依然也有点问题:当节点较少时会出现数据分布不均匀的情况:

79958559668af1cd3e2491a2161e5092.png

这样会导致大部分数据都在 N1 节点,只有少量的数据在 N2 节点。

为了解决这个问题,一致哈希算法引入了虚拟节点。将每一个节点都进行多次 hash,生成多个节点放置在环上称为虚拟节点:

3ac757d1f9d12268fee61e757944aec0.png

计算时可以在 IP 后加上编号来生成哈希值。这样只需要在原有的基础上多一步由虚拟节点映射到实际节点的步骤即可让少量节点也能满足均匀性。

欢迎工作一到五年的Java工程师朋友们加入Java程序员开发: 721575865

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

http://www.jmfq.cn/news/4969369.html

相关文章:

  • 百度公司给做网站吗/交易平台
  • 婚纱网站怎么做/百度推广开户渠道
  • 深圳设计公司上市成功有几家/陕西整站关键词自然排名优化
  • 无锡自助做网站/中国搜索引擎市场份额
  • 石景山青岛网站建设/世界十大搜索引擎及地址
  • 网站开发有哪些模块/seo需要掌握什么技能
  • 菠菜网站建设条件/百度高级搜索首页
  • 外贸网站 服务器/品牌整合营销推广
  • 出国越南做网站8000保底/网络媒体有哪些
  • 网站建设整合营销/抖音seo运营模式
  • 个人网站有什么用/seo技巧分享
  • 金融网站怎么做/google国际版入口
  • 产品介绍网站源码/东莞做网站的公司吗
  • 环评怎么在网站做公示/网络安全培训最强的机构
  • 做网站有那几种末班/如何在百度推广自己的产品
  • 怎样在百度上做网站/新产品推广方式有哪些
  • 做任务的正规网站/中企动力做网站推广靠谱吗
  • 珠海网站制作服务/微信软文案例
  • 武汉那些网站做家教的/网站建设建站在线建站
  • nba最新排名情况/seo优化神器
  • 域名和主机搭建好了怎么做网站/网络推广策划方案模板
  • 上海正规做网站公司/苏州关键词搜索排名
  • 台山网站建设公司/百度网站优化公司
  • 群晖nas可以做web网站/高粱seo博客
  • 建设钓鱼网站源码/最近的新闻大事
  • 网站建设与维护相关知识/seo zac
  • 卖游戏币网站制作/2345网址导航下载桌面
  • 金牌网站设计网站建设/广告公司广告牌制作
  • 网站开发后 怎么换前端/外链工具软件
  • 北京网站开发公司/同城推广