码迷,mamicode.com
首页 > 系统相关 > 详细

memcached 如何处理容错的?

时间:2020-06-25 15:51:33      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:完全   一致性哈希算法   原来   部分   支持   热备   处理   失效   用户   

不处理! 在 memcached 节点失效的情况下,集群没有必要做任何容错处理。如

果发生了节点失效,应对的措施完全取决于用户。节点失效时,下面列出几种方

案供您选择:

忽略它! 在失效节点被恢复或替换之前,还有很多其他节点可以应对节

点失效带来的影响。

把失效的节点从节点列表中移除。做这个操作千万要小心!在默认情况下

(余数式哈希算法),客户端添加或移除节点,会导致所有的缓存数据不可用!

因为哈希参照的节点列表变化了,大部分 key 会因为哈希值的改变而被映射到

(与原来)不同的节点上。

启动热备节点,接管失效节点所占用的 IP。这样可以防止哈希紊乱

(hashing chaos)。

如果希望添加和移除节点,而不影响原先的哈希结果,可以使用一致性哈

希算法(consistent hashing)。您可以百度一下一致性哈希算法。支持一致性

哈希的客户端已经很成熟,而且被广泛使用。去尝试一下吧!

两次哈希(reshing)。当客户端存取数据时,如果发现一个节点 down

了,就再做一次哈希(哈希算法与前一次不同),重新选择另一个节点(需要注

意的时,客户端并没有把 down 的节点从节点列表中移除,下次还是有可能先

哈希到它)。如果某个节点时好时坏,两次哈希的方法就有风险了,好的节点和

坏的节点上都可能存在脏数据(stale data)。

memcached 如何处理容错的?

标签:完全   一致性哈希算法   原来   部分   支持   热备   处理   失效   用户   

原文地址:https://www.cnblogs.com/programb/p/13020066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!