Memcache 的一台server宕掉怎么办
七月 5th, 2010
Memcached 本身是不能Fail over,多台机组成一个pool,这些机器是不互相通信的。其中一台宕掉后,可能导致整体的服务失效。采用一致性哈希可以解决这些问题,但是怎么移除失效的节点(dead node),是由 client 端来负责的。
最近我们的一个团购应用 http://tuan.pclady.com.cn/ 就出现了这个问题,一台 memcached 服务除了问题,页面出不来了,因为timeout异常抛到了页面上,使程序流程进入了错误页面。
memcached 出错的原因是什么呢?查下来是另外一个memcached服务的控制脚本有问题,在停的时候把所有名为memcached的进程全kill掉了。memcached服务不稳定的原因找到了。
后面还要研究一下,在 memcached 出问题时,怎么样保证系统的效率和稳定性,其实就是动态的增加、移除节点,而不损坏状态良好的节点内cache的数据。这个还有待研究。
