一致性哈希的实际应用 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

一致性哈希的实际应用

2016-03-09 13:24:43 3147 1

前言
今天重看了一下一致性哈希的论文,心里有几处不清楚的地方,求指导
场景
四台server服务器(192.168.1.1-4),redis数据库,存储key-value键值对
问题1
首先,redis的key-value数据一般需要3份备份,对应到一致性哈希的场景,可以说有一台主服务器,和2台从服务器。问题:从服务器的选取是一致性哈希代码里选取三个不同的server,还是选取一个server,然后给这个server再配上两台从服务器呢(这样服务器从原先的4台,增加到4 + 2 * 4 = 12台),我考虑用memcache记录key、主、从分布表
问题2

如果冗余到其他两台服务器,假设是ABCD四台服务器,key的主库是A,备份库在BC上,那当A单点故障,BC之间如何选择,BC上针对A节点的增删改数据如何再恢复给A节点吗?我看了NRW模型,但是没能完全理解

解答1

群里有人提示,服务器端可以用HAproxy+Keepalived实现每个机器主备模式,其实相当于一致性哈希的环上真正只有4个可用的target,却需要8台服务器来完成

取消 提交回答
全部回答(1)
  • 爵霸
    2019-07-17 18:55:54

    根据楼主想要使用一致性哈希算法来看,基本上是把redis当做缓存使用,而不是数据库;

    而使用一致性哈希的主要目的通常都是:当集群中机器数量发生变化时,减少缓存失效范围,防止“雪崩”;

    在这种情况下,我想到了另一个问题:是不是一定要用哈希一致性算法?

    按照我的想法,根据redis目前提供的一些特性,或许使用下面这种常见架构,就能解决刚才的问题;

    1台master,n台slave,然后采取读写分离的方式,master处理写请求,slave负责处理读请求(负载均衡)

    这种部署方式有什么优势?

    •当业务访问量猛增时,我们可以快速新增一台redis机器,连上master,当完成主从复制后, 放入到slave集群,开始对外提供服务;

    •当slave集群中有一台机器挂掉后,可以通过某种机制被识别(借鉴sentinel),并将它从slave集群中踢出;

    这样子无论slave集群如何变化,都不会出现cache失效或者部分失效问题;

    这种部署方式有什么劣势?
    •redis目前主从复制过程有个很不好的地方就是:当slave和master在同步过程中,网络出现问题,这时候slave要求master重传而不是续传(重新生成一份RDB文件然后传输);这样当master中数据很多的时候,影响会很大,所以一个master下挂多个slave稳定性会下降;

    以上仅为个人一点想法,拿出来和楼主探讨

    0 0
相关问答

1

回答

服务优先级有哪两种策略,可以方便用户在可用性和一致 性之间做出权衡?

2022-09-12 10:42:28 63浏览量 回答数 1

1

回答

从应用编程的角度 看, 客户端维度的一致性模型最好满足哪些要求?

2022-04-05 17:37:19 138浏览量 回答数 1

1

回答

HDFS 的一致性模型是怎样的呢?

2021-12-05 21:08:15 388浏览量 回答数 1

1

回答

如何实现线性一致性?

2020-04-24 11:36:55 474浏览量 回答数 1

2

回答

微服务分布式一致性

2019-11-12 14:51:59 1716浏览量 回答数 2

1

回答

高校大数据实训平台有何实质性的作用及价值呢?

2019-04-25 15:15:21 1578浏览量 回答数 1

2

回答

收两个ecs的备案服务号

2016-07-26 22:16:27 2843浏览量 回答数 2

3

回答

大哥大姐快来帮帮我啊,我申请了一台免费的杭州节点的ECS,没有公网带宽

2014-08-06 11:48:31 8740浏览量 回答数 3

1

回答

给促销活动一些建设性意见

2012-11-11 11:09:53 6693浏览量 回答数 1

6

回答

OSS命令行客户端工具

2011-11-28 19:42:24 23692浏览量 回答数 6
+关注
文章
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载