Xmemcached 1.3预览:failure模式和standby节点
dennis_zane
2010-12-28
XMemcachedClientBuilder builder =…… //设置使用failure模式 builder.setFailureMode(true);
在此模式下,某个节点挂掉的情况下,往这个节点的请求都将直接抛出MemcachedException的异常。 XMemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil .getAddressMap("192.168.1.99:11211,192.168.1.100:11211 192.168.1.101:11211,192.168.1.102:11211")); builder.setFailureMode(true);
|
|
lovit
2010-12-28
|
|
lvbaosong
2011-01-27
按照你上面说的我做了standby 为了测试是否有效,我将主memecached服务给关了,
程序抛出异常没自动切换到备memecached。是不是我使用有问题? 另外请问 XMemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil . [code="java"]getAddressMap("192.168.1.99:11211,192.168.1.100:11211 192.168.1.101:11211,192.168.1.102:11211")) 99和101两个主服务节点的数据是一样的对吧?这两个服务器的数据在插入缓存时候是xmemcached同步了数据,还是自己程序中实现数据的一致? |
|
dennis_zane
2011-01-27
lvbaosong 写道 按照你上面说的我做了standby 为了测试是否有效,我将主memecached服务给关了,
程序抛出异常没自动切换到备memecached。是不是我使用有问题? 另外请问 XMemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil . [code="java"]getAddressMap("192.168.1.99:11211,192.168.1.100:11211 192.168.1.101:11211,192.168.1.102:11211")) 99和101两个主服务节点的数据是一样的对吧?这两个服务器的数据在插入缓存时候是xmemcached同步了数据,还是自己程序中实现数据的一致? 文中已经提了,数据不会做同步。 |
|
lvbaosong
2011-01-27
dennis_zane 写道 lvbaosong 写道 按照你上面说的我做了standby 为了测试是否有效,我将主memecached服务给关了,
程序抛出异常没自动切换到备memecached。是不是我使用有问题? 另外请问 XMemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil . [code="java"]getAddressMap("192.168.1.99:11211,192.168.1.100:11211 192.168.1.101:11211,192.168.1.102:11211")) 99和101两个主服务节点的数据是一样的对吧?这两个服务器的数据在插入缓存时候是xmemcached同步了数据,还是自己程序中实现数据的一致? 文中已经提了,数据不会做同步。 呵呵,谢谢回复,我看文章中说的是主备模式不做数据同步,以为每组节点中的 主缓存可以数据同步呢。这个问题算是清楚了。 上面的standby没起作用请问可能是什么原因,能给解释下不? |
|
dennis_zane
2011-01-27
lvbaosong 写道 dennis_zane 写道 lvbaosong 写道 按照你上面说的我做了standby 为了测试是否有效,我将主memecached服务给关了,
程序抛出异常没自动切换到备memecached。是不是我使用有问题? 另外请问 XMemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil . [code="java"]getAddressMap("192.168.1.99:11211,192.168.1.100:11211 192.168.1.101:11211,192.168.1.102:11211")) 99和101两个主服务节点的数据是一样的对吧?这两个服务器的数据在插入缓存时候是xmemcached同步了数据,还是自己程序中实现数据的一致? 文中已经提了,数据不会做同步。 呵呵,谢谢回复,我看文章中说的是主备模式不做数据同步,以为每组节点中的 主缓存可以数据同步呢。这个问题算是清楚了。 上面的standby没起作用请问可能是什么原因,能给解释下不? 在切换的瞬间是有可能抛出异常的,后续的请求会发给standby节点。 |
|
lvbaosong
2011-01-30
dennis_zane 写道 lvbaosong 写道 dennis_zane 写道 lvbaosong 写道 按照你上面说的我做了standby 为了测试是否有效,我将主memecached服务给关了,
程序抛出异常没自动切换到备memecached。是不是我使用有问题? 另外请问 XMemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil . [code="java"]getAddressMap("192.168.1.99:11211,192.168.1.100:11211 192.168.1.101:11211,192.168.1.102:11211")) 99和101两个主服务节点的数据是一样的对吧?这两个服务器的数据在插入缓存时候是xmemcached同步了数据,还是自己程序中实现数据的一致? 文中已经提了,数据不会做同步。 呵呵,谢谢回复,我看文章中说的是主备模式不做数据同步,以为每组节点中的 主缓存可以数据同步呢。这个问题算是清楚了。 上面的standby没起作用请问可能是什么原因,能给解释下不? 在切换的瞬间是有可能抛出异常的,后续的请求会发给standby节点。 哦,我在测试试试 |
|
evanz
2011-02-18
发现failure模式有点小问题,
MemcachedClientBuilder builder = new XMemcachedClientBuilder( AddrUtil.getAddresses("192.168.8.122:11211 192.168.8.141:11211")); builder.setFailureMode(true); memcachedClient.set("user", 0, "Hello,xmemcached"); 假设key: user 经过hash后是分配到192.168.8.141上,但是在运行程序前,192.168.8.141上的memcached并没启动,此时,就算设置了setFailureMode(true),xmemcache不会抛个异常,而是将数据些到了192.168.8.122上了。。。这并不是期望的结果啊,因为当192.168.8.141的memcached启动后,后续对user这个key的操作又转到了192.168.8.141上,这样用户会比较困惑。。。 |
|
dennis_zane
2011-02-18
evanz 写道 发现failure模式有点小问题,
MemcachedClientBuilder builder = new XMemcachedClientBuilder( AddrUtil.getAddresses("192.168.8.122:11211 192.168.8.141:11211")); builder.setFailureMode(true); memcachedClient.set("user", 0, "Hello,xmemcached"); 假设key: user 经过hash后是分配到192.168.8.141上,但是在运行程序前,192.168.8.141上的memcached并没启动,此时,就算设置了setFailureMode(true),xmemcache不会抛个异常,而是将数据些到了192.168.8.122上了。。。这并不是期望的结果啊,因为当192.168.8.141的memcached启动后,后续对user这个key的操作又转到了192.168.8.141上,这样用户会比较困惑。。。 这确实是个问题,没有考虑到在启动的时候,memcached故障的情况。我会尝试修正,感谢。 |
|
windflower_07
2011-06-13
试了一下standby模式,发现如果开始主节点就是坏的,那么第一次还是去主节点取数据了,取出来为null了,第二次才去备节点。
有个这样的需求,不知道dennis 觉得如何,我们这两个Memcached服务,数据一模一样,现在想用,主要指读的时候,各负担50%压力,但是一个挂了,全部压力到另一个server(即standby 模式了)。 此外,有个地方文档有点小问题 http://code.google.com/p/xmemcached/wiki/User_Guide_zh#Failure%E6%A8%A1%E5%BC%8F%E5%92%8Cstandby%E8%8A%82%E7%82%B9 |