XMemcached发布1.1.2版本,这一版本仍然是1.1.0版本以来的改进版本,主要的改进如下:

1.支持设置memcached 节点权重,权重高的负载相应比较大。

2.为部分协议添加 noreply选项,memcached 1.2.5引入了noreply支持,部分文本协议(如存储,删除,incr/decr等)允许附加设置一个noreply,表示客户端不要求memcached应答。这一特性利于批量处理。

3.支持与 spring框架的集成

4.添加 verbosity协议,这个协议用于让客户端设置memcached的日志输出级别。

5.一些细节改进。XMemcached从0.5开始就有重连机制,在连接意外断开的情况下会不断地自动重连,不过间隔是10秒,现在改成将间隔缩小为0秒以便客户端能及时连接。改进了JMX支持,可以通过JMX查看节点权重和动态设置节点权重。

6.BUG修复,包括:Issue 35、Issue 36、Issue 37、Issue 38等,具体请看 这里

7.去除了对spy-2.4.jar依赖,现在序列化部分已经不再需要spymemcached的这个jar包。

项目主页: http://code.google.com/p/xmemcached/
下载地址: http://code.google.com/p/xmemcached/downloads/list
wiki地址: http://code.google.com/p/xmemcached/w/list

下面是关于特性的详细说明,首先是权重的使用,看例子:

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

现在的 XMemcachedClientBuilder允许传入了两个参数,一个是InetSocketAddress组成的列表,一个是权重的数组,权重数组的元素与列表中的地址一一对应,例如这里就是将"localhost:12000"节点的权重设置为1,而将"localhost:12001"的权重设置为3。同样在XMemcachedClientMBean中添加了两个新的方法:


     public   void  addOneServerWithWeight(String server,  int  weight)
             throws  IOException;

/**
     * Set a memcached server's weight
     * 
     *  @param  server
     *  @param  weight
      */
     public   void  setServerWeight(String server,  int  weight);

用于动态添加和修改节点的权重。

其次,为了支持 noreply选项,MemcachedClient接口引入了系列xxxWithNoReply方法,例如

public   abstract   void  setWithNoReply( final  String key,  final   int  exp,
             final  Object value)  throws  InterruptedException, MemcachedException;

public   abstract   < T >   void  setWithNoReply( final  String key,  final   int  exp,
             final  T value,  final  Transcoder < T >  transcoder)
             throws  InterruptedException, MemcachedException;

public   abstract   void  addWithNoReply( final  String key,  final   int  exp,
             final  Object value)  throws  InterruptedException, MemcachedException;
public   abstract   void  replaceWithNoReply( final  String key,  final   int  exp,
             final  Object value)  throws  InterruptedException, MemcachedException;
public   void  deleteWithNoReply( final  String key)
             throws  InterruptedException, MemcachedException;

完整的列表请看changelog.txt, noreply系列方法非常适合于批量处理,比之需要等待memcached应答的效率上提升很多。

第三,与spring的集成,通过XMemcachedClientFactoryBean可以很方便地与spring框架集成,最简单的配置如下:

   < bean  name ="memcachedClient"
        class ="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean" >
         < property  name ="servers" >
             < value > localhost:12000 localhost:12001 </ value >
         </ property >
     </ bean >

只要设置servers属性,那么就可以在任何需要的地方引用memcachedClient这个Bean.更完整的配置参考 wiki

第四,引入了对verbosity协议的支持,通过两个新方法:

     public   void  setLoggingLevelVerbosity(InetSocketAddress address,  int  level)
             throws  TimeoutException, InterruptedException, MemcachedException;

public   void  setLoggingLevelVerbosityWithNoReply(InetSocketAddress address,
             int  level)  throws  InterruptedException, MemcachedException;

其中的level就是日志级别。请注意你的memcached版本是否支持这一协议。

1.1.2是一个承前启后的版本,按俺的计划应该还有个1.1.3(专注性能改进和优化),之后才是实现了二进制协议的1.2.0。俺非常希望能有任何人给出任何建议和bug反馈。

文章转自庄周梦蝶  ,原文发布时间2009-06-21

xmemcached发布1.1.2 (权重、noreply、spring集成)相关推荐

  1. xmemcached发布1.3.4

    开源的java memcached client-- xmemcached发布1.3.4版本,主要改进如下: 1.修复一个相对严重的bug,在解析二进制协议时如果遇到从服务端返回的错误信息,会导致连接 ...

  2. xmemcached发布1.3.6

    开源的memcached Java客户端--xmemcached发布1.3.6版本.     主要改进如下: 1.  为MemcachedClientBuilder添加两个新方法用于配置: publi ...

  3. spring集成xmemcached

    2019独角兽企业重金招聘Python工程师标准>>> spring集成xmemcached <dependency><groupId>com.googlec ...

  4. Spring集成CXF发布WebService并在客户端调用

    Spring集成CXF发布WebService 1.导入jar包 因为官方下载的包里面有其他版本的sprring包,全导入会产生版本冲突,所以去掉spring的部分,然后在项目根目录下新建了一个CXF ...

  5. 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)

    Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...

  6. jbpm 4.3 与 spring 集成

    jbpm4.2与spring集成有点问题,直接跟据它自己的"开发指南"提供的方法是不能集成的.在官网查到的信息是发布4.2时,忘记更新集成spring的文件.不过4.3已经把该bu ...

  7. spring集成mq_使用Spring Integration Java DSL与Rabbit MQ集成

    spring集成mq 我最近参加了在拉斯维加斯举行的2016年Spring大会 ,很幸运地看到了我在软件世界中长期敬佩的一些人. 我亲自遇到了其中的两个人,他们实际上合并了几年前我与Spring In ...

  8. Spring集成基础知识

    本文是我们名为" EAI的Spring集成 "的学院课程的一部分. 在本课程中,向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们. 接下来,您将深 ...

  9. 通过Spring集成进行消息处理

    Spring Integration提供了Spring框架的扩展,以支持著名的企业集成模式. 它在基于Spring的应用程序中启用轻量级消息传递,并支持与外部系统的集成. Spring Integra ...

最新文章

  1. 计算机机房建设监理,机房工程建设监理工作要点讲解
  2. 【渝粤教育】国家开放大学2018年春季 8625-22T老年心理健康 参考试题
  3. Vue解析--如何应对面试官提问
  4. 修改项目生成Gemfile的模板
  5. linux安装系统ftp服务器配置,linux系统搭建ftp服务器的配置方 - 电子发烧友网
  6. python语言的读法-Python语言的特点及自学建议
  7. [Alpha]Scrum Meeting#4
  8. java基础三--IO流(1)
  9. 论文笔记_S2D.68_深度补全网络
  10. android sensor架构_转 Camx 架构知识点
  11. Mysql报错(必解决):The user specified as a definer (‘mysql.infoschema‘@‘localhost‘) does not exist
  12. 安卓系统的电视机_天猫魔盒强刷机教程,把天猫魔盒刷成安卓系统教程?
  13. matlab图像处理Lena大作业
  14. php手机网页唤醒支付宝APP支付,支付宝H5唤醒APP
  15. showwindow 窗口不弹出_C语言Windows程序设计 - 【第一个属于自己的窗口】!
  16. gym101964 G.Matrix Queries(思维+线段树)
  17. 构造者模式与Lombok的邂逅
  18. word骨灰级水平,赶紧留一份
  19. opencv + contrib windows下源码编译
  20. 隐含狄利克雷分布(Latent Dirichlet Allocation)

热门文章

  1. JAVA值传递还是引用传递?
  2. 地理信息系统名词解释大全(九)
  3. matlab按列扫描图像,Matlab实现图像扫描匹配
  4. 无参考图像质量评价指标
  5. layui.laytpl( )函数
  6. 隐私计算行业应用情况和标准化现状
  7. C++ int long long double 等数据范围!
  8. 【QT】float double的范围与精度及Qt中的qfloat16
  9. 如何将无限循环小数转化为分数
  10. tf2连服务器一直被中断,服务器崩溃致比赛延期 Kyle等解说声讨V社