xmemcached对权重的支持

在JavaMemCached这个memacched客户端,如果你有多个memcachd节点,你可以设置memcached server的权重,权重高的节点在存储、获取等操作就相应占的比重比较大。恰巧我最近也在实现一个类似这样流控的东西,因此在xmemcached实现了此feature。这个功能暂定在1.2.0的时候发布,但是现在已经可以从svn获取,只是你需要自己build。

    使用方法,与通常调用的唯一区别就是在创建MemcachedClient的时候,

MemcachedClientBuilder builder = new XMemcachedClientBuilder (AddrUtil.getAddresses("localhost:12000 localhost:12001"),new int[]{1,3});
MemcachedClient memcachedClient = builder.build();


     XMemcachedClientBuilder新增一个重载构造函数,除了传入地址列表之外,还可以传入一个权重数组表示列表中的memcached节点权重,权重数组与地址列表一一对应。这里将localhost:12001的权重设为3,而localhost:12000的权重设置为1。 如果没有提供权重值,默认都是为1。这个feature已经进行了测试,在随机化测试下完全符合比例要求。这一feature对于是使用标准哈希,还是一致性哈希都有效。

    实现原理是添加weight次相同的session存储在session查找集合里,但是注意这里仍然是只有一个连接的,只是在集合里存储了这个连接的多份引用,那么在查找session的过程中,找到权重大(引用多)的连接的几率相应就比较大。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值