简述Memcached 如何处理容错的?

Memcached 可以通过以下几种方式来处理容错:

  1. 节点失效处理:当一个 Memcached 节点失效时,可以将其从节点列表中移除,然后启动热备节点接管其IP。这样,即使节点失效,也不会影响到客户端的存取操作。
  2. 数据冗余备份:使用一致性哈希算法,客户端在存取数据时如果发现一个节点 down 了,就再做一次哈希(哈希算法与前一次不同),重新选择另一个节点。这样可以防止哈希紊乱(hashing chaos)。
  3. 两次哈希:当客户端存取数据时,如果发现一个节点 down 了,就再做一次哈希(哈希算法与前一次不同),重新选择另一个节点(需要注意的时,客户端并没有把 down 的节点从节点列表中移除,下次还是有可能先哈希到它)。如果某个节点时好时坏,两次哈希的方法就有风险了,好的节点和坏的节点上都可能存在脏数据(stale data)。

发表评论

后才能评论