论坛首页 综合技术论坛

tencent2012笔试题附加

浏览 13131 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-10-13  
例如手机朋友网有n个服务器,为了方便用户的访问会在服务器上缓存数据,因此用户每次访问的时候最好能保持同一台服务器。已有的做法是根据ServerIPIndex[QQNUM%n]得到请求的服务器,这种方法很方便将用户分到不同的服务器上去。但是如果一台服务器死掉了,那么n就变为了n-1,那么ServerIPIndex[QQNUM%n]与ServerIPIndex[QQNUM%(n-1)]基本上都不一样了,所以大多数用户的请求都会转到其他服务器,这样会发生大量访问错误。

问: 如何改进或者换一种方法,使得:(1)一台服务器死掉后,不会造成大面积的访问错误,(2)原有的访问基本还是停留在同一台服务器上;(3)尽量考虑负载均衡。

大家讨论一下吧。
   发表时间:2011-10-13  
ServerIPIndex[QQNUM%(n-1)]还是用n作为模数,可以获知死掉服务器的index,将这部分用户进行二次分配使用ServerIPIndex[QQNUM%(n-1)]来分配。
0 请登录后投票
   发表时间:2011-10-13  
继续保持使用ServerIPIndex[QQNUM%n]不变,在获得可能访问的服务器之后判断服务器状态,如果该服务器不可用,再使用ServerIPIndex[QQNUM%(n-1)]将宕机服务器的请求平均分配到正常运行的服务器
0 请登录后投票
   发表时间:2011-10-14  
一致性哈希
0 请登录后投票
   发表时间:2011-10-19  
使用一致性哈希算法并使用虚拟节点。
0 请登录后投票
   发表时间:2011-10-20  
这个用一致性hash把物理节点散落在虚拟节点上就可以减小物理节点抖动后造成数据散落不均匀的的影响
0 请登录后投票
   发表时间:2011-10-20  
一致性哈希
0 请登录后投票
   发表时间:2011-10-20  
一致性哈希   看一下memcache的客户端大多都采用这种算法 
0 请登录后投票
   发表时间:2011-10-20  
soli 写道
一致性哈希

很明显是这个嘛
0 请登录后投票
   发表时间:2011-10-20  
http://xok.la/2010/06/memcache_consistent_hashing.html
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics