xmemcached发布1.1.2 (权重、noreply、spring集成)
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
下面是关于特性的详细说明,首先是权重的使用,看例子:
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方法,例如
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框架集成,最简单的配置如下:
class ="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean" >
< property name ="servers" >
< value > localhost:12000 localhost:12001 </ value >
</ property >
</ bean >
只要设置servers属性,那么就可以在任何需要的地方引用memcachedClient这个Bean.更完整的配置参考 wiki
第四,引入了对verbosity协议的支持,通过两个新方法:
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集成)相关推荐
- xmemcached发布1.3.4
开源的java memcached client-- xmemcached发布1.3.4版本,主要改进如下: 1.修复一个相对严重的bug,在解析二进制协议时如果遇到从服务端返回的错误信息,会导致连接 ...
- xmemcached发布1.3.6
开源的memcached Java客户端--xmemcached发布1.3.6版本. 主要改进如下: 1. 为MemcachedClientBuilder添加两个新方法用于配置: publi ...
- spring集成xmemcached
2019独角兽企业重金招聘Python工程师标准>>> spring集成xmemcached <dependency><groupId>com.googlec ...
- Spring集成CXF发布WebService并在客户端调用
Spring集成CXF发布WebService 1.导入jar包 因为官方下载的包里面有其他版本的sprring包,全导入会产生版本冲突,所以去掉spring的部分,然后在项目根目录下新建了一个CXF ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)
Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...
- jbpm 4.3 与 spring 集成
jbpm4.2与spring集成有点问题,直接跟据它自己的"开发指南"提供的方法是不能集成的.在官网查到的信息是发布4.2时,忘记更新集成spring的文件.不过4.3已经把该bu ...
- spring集成mq_使用Spring Integration Java DSL与Rabbit MQ集成
spring集成mq 我最近参加了在拉斯维加斯举行的2016年Spring大会 ,很幸运地看到了我在软件世界中长期敬佩的一些人. 我亲自遇到了其中的两个人,他们实际上合并了几年前我与Spring In ...
- Spring集成基础知识
本文是我们名为" EAI的Spring集成 "的学院课程的一部分. 在本课程中,向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们. 接下来,您将深 ...
- 通过Spring集成进行消息处理
Spring Integration提供了Spring框架的扩展,以支持著名的企业集成模式. 它在基于Spring的应用程序中启用轻量级消息传递,并支持与外部系统的集成. Spring Integra ...
最新文章
- 计算机机房建设监理,机房工程建设监理工作要点讲解
- 【渝粤教育】国家开放大学2018年春季 8625-22T老年心理健康 参考试题
- Vue解析--如何应对面试官提问
- 修改项目生成Gemfile的模板
- linux安装系统ftp服务器配置,linux系统搭建ftp服务器的配置方 - 电子发烧友网
- python语言的读法-Python语言的特点及自学建议
- [Alpha]Scrum Meeting#4
- java基础三--IO流(1)
- 论文笔记_S2D.68_深度补全网络
- android sensor架构_转 Camx 架构知识点
- Mysql报错(必解决):The user specified as a definer (‘mysql.infoschema‘@‘localhost‘) does not exist
- 安卓系统的电视机_天猫魔盒强刷机教程,把天猫魔盒刷成安卓系统教程?
- matlab图像处理Lena大作业
- php手机网页唤醒支付宝APP支付,支付宝H5唤醒APP
- showwindow 窗口不弹出_C语言Windows程序设计 - 【第一个属于自己的窗口】!
- gym101964 G.Matrix Queries(思维+线段树)
- 构造者模式与Lombok的邂逅
- word骨灰级水平,赶紧留一份
- opencv + contrib windows下源码编译
- 隐含狄利克雷分布(Latent Dirichlet Allocation)