您的位置:首页 > 运维架构 > 网站架构

读《大型网站技术架构:核心原理与案例分析+李智慧》记二

2016-01-31 22:32 489 查看
Memcached分布式缓存集群

最简单的方法是通过路由算法可以实现余输Hash:用服务器是数目除与缓存数据Key的hash值,如key为7,有3台服务器,那么余数就是1,由此可见访问编号为1的服务器(编号从0开始)。

由于key是随机产生的,这样对于整个服务器集群来说访问压力是相对平均的

上述方法有一个问题:如果新加了2台缓冲服务器,那么7除于5就等于2,本来在缓存服务器一中有缓存数据,可是由于新加缓存服务器导致没有命中(需要到数据库中查找)。

命中率为(1-(n/n+m)):n为原有数目,m为新增数目。这样命中率在明显不合适

分布式缓存的一致性hash算法

实现原理:先构建一个长度为0-2^32的整数环(这个环被称为一致hash环),更加节点名称的hash值将缓存服务器节点放置在这个hash环上,然后更加需要查找数据key计算hash值,在顺序查找服务器的hash,匹配与需要查找数据的hash值最近的服务器hash值

产生问题:当一部分原来需要访问缓存服务器1的,现在访问缓存服务器3,但是缓存0与缓存2的数据负载压力不变,不符合负载一致性原则

增加一个虚拟层(计算机的任何问题都可以通过增加一个虚拟层来解决)。

将每台物理缓存服务器虚拟为一组虚拟缓存服务器,将虚拟服务器的hash值放置在hash环上,key在环上先找到虚拟服务器节点,在得到物理服务器的信息

这三种方法现在只是看懂了第一种,望如果看了这书的人不吝赐教
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  memcached