在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();
MemcachedClient memcachedClient = builder.build();
XMemcachedClientBuilder新增一个重载构造函数,除了传入地址列表之外,还可以传入一个权重数组表示列表中的memcached节点权重,权重数组与地址列表一一对应。这里将localhost:12001的权重设为3,而localhost:12000的权重设置为1。 如果没有提供权重值,默认都是为1。这个feature已经进行了测试,在随机化测试下完全符合比例要求。这一feature对于是使用标准哈希,还是一致性哈希都有效。
实现原理是添加weight次相同的session存储在session查找集合里,但是注意这里仍然是只有一个连接的,只是在集合里存储了这个连接的多份引用,那么在查找session的过程中,找到权重大(引用多)的连接的几率相应就比较大。
相关推荐
XMemcached不仅支持memcached的所有协议,还具备一系列增强功能,使其成为开发者的首选工具之一。 #### 主要特性 1. **高性能**: - 基于Java NIO(非阻塞I/O),相较于传统的阻塞I/O模型,Java NIO能够更好地处理...
- **简化开发流程**:考虑到许多项目已经使用Spring框架作为依赖注入容器,XMemcached提供了对Spring的支持。此外,XMemcached还支持与Hibernate-Memcached集成,后者允许将Memcached用作Hibernate的二级缓存。 **8...
2. **完整协议支持**:XMemcached支持所有Memcached协议,包括1.4.0开始引入的二进制协议,提供了全面的兼容性。 3. **客户端分布**:它实现了客户端级别的分布式策略,特别是使用一致性哈希算法,确保数据在节点间...
功能完备:客户端分布式、权重、最新最完整的协议支持。 可扩展,易于集成 可动态增删memached节点 客户端操作统计 NIO连接池 等等,更多信息请见wiki文档。 标签:...
2. **完整协议支持**:XMemcached支持所有Memcached协议,包括1.4.0引入的二进制协议,提供更全面的兼容性。 3. **客户端分布**:XMemcached内置了客户端分布策略,特别是使用一致性哈希算法,确保数据在节点间的...
3.xmemcached,XMemcached也使用得比较广泛,而且有较详细的中文API文档,具有如下特点:高性 能、支持完整的协议、支持客户端分布、允许设置节点权重、动态增删节点、支持JMX、与Spring框架和Hibernate-memcached的...
Xmemcached是一个高性能的Java NIO实现的memcached客户端,具备多种特性,如高性能、支持完整的memcached文本协议、JMX管理、动态节点增减、多种分布策略等。 **Xmemcached特性** 1. **高性能**:通过Java NIO优化...
支持节点的权重设置,支持 nio 的连接池,网络实现层是长连接形式,无需重复创建多个 Client 连接。 Memcached 是一个高性能的分布式内存缓存服务器,能够减少数据库访问次数,提高动态 Web 应用的速度和扩展性。...
它还提供了丰富的特性,如支持完整的协议、客户端分布、节点权重设置、动态增删节点、JMX支持、Spring和Hibernate-memcached集成、连接池功能以及良好的可扩展性。 **推荐与建议** 考虑到官方客户端的新版本在性能...
- **Spring+XMemcached**:支持文本和二进制协议,能动态添加和删除节点,具有客户端统计功能,可以设置节点权重,并支持nio连接池,提供更高效的连接管理。 综上所述,Memcached作为数据平台前端缓存技术方案的...