庄周梦蝶

生活、程序、未来
   :: 首页 ::  ::  :: 聚合  :: 管理

XMemcached发布1.2.0-RC1

Posted on 2009-09-09 09:50 dennis 阅读(1727) 评论(2)  编辑  收藏 所属分类: javamy open-source
  XMemcached是一个基于java nio的Memcached Client,正式发布1.2.0-RC1版本。此版本又是一个里程碑版本,开始支持memcached的二进制协议,并添加了几个更有价值的功能。此版本的主要改进如下:

1、支持完整的memcached binary协议。XMemcached现在已经支持memcached的所有文本协议和二进制协议,成为一个比较完整的java client。Memcached的二进制协议带来更好的性能以及更好的可扩展性。在XMemcached中使用二进制协议,你只要添加一行代码:
 XMemcachedClientBuilder builder=.
  builder.setCommandFactory(
new BinaryCommandFactory());//此行

或者在Spring配置中增加一行配置:
<bean name="memcachedClient2"
        class
="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean" destroy-method="shutdown">
   
   
<!--采用binary command -->
   
<property name="commandFactory">
           
<bean class="net.rubyeye.xmemcached.command.BinaryCommandFactory"></bean>

</bean>

2.支持与hibernate-memcached的集成Hibernate-memcached是可以将memcached作为hibernate二级缓存的开源项目,它默认采用的是Spymemcached,XMemcached 1.2.0开始提供对它的集成,具体的配置信息参考这里

3.兼容JDK5。XMemcached的1.x版本都仅能在jdk6上使用,从1.2.0-RC1开始,XMemcached开始兼容jdk5。当时考虑只支持jdk6是由于nio的Epoll Selector实现是在jdk6上成为默认,而jdk5需要设置环境变量。不过XMemcached 1.2.0-RC1将自动帮你判断是否是linux平台,并且判断是否可以启用epoll,如果可以,那么将在linux平台采用EPollSelectorProvider,这一切对用户来说是透明的。(注意,jdk5的低版本在linux平台仍然是没有epoll实现的)。

4.日志从common-logging迁移到slf4j。XMemcached现在必须的两个依赖包分别是slf4jyanf4j(1.0-SNAPSHOT).

5.另一个关键性的改进是允许设置连接池。众所周知,nio的client默认一般都是一个连接,传统的阻塞io采用连接池的方式提高效率。但是在典型的高并发场景下,nio的单连接也将遇到瓶颈,此时允许设置连接池将是一个可选的调优手段。XMemcached 1.2.0-RC1支持设置连接池,允许对同一个memcached节点建立多个连接,启用的代码如下:
MemcachedClient mc =.
mc.setConnectionPoolSize(2);

 默认的pool size是1。设置这一数值不一定能提高性能,请依据你的项目的测试结果为准。初步的测试表明只有在大并发下才有提升。设置连接池的一个不良后果就是,同一个memcached的连接之间的数据更新并非同步的,因此你的应用需要自己保证数据更新的原子性(采用CAS或者数据之间毫无关联)。

6、简化构建,移除ant构建,简化maven构建,现在只采用maven构建了。借助于wagon-svn这个扩展,可以将svn作为maven仓库,因此xmemcached的构建现在变的非常方便,下载源码后敲入mvn package即可。

7.升级yanf4j到1.0-SNAPSHOT版本,此版本引入了SocketOption类,方便设置socket选项,并为引入aio做了重构。

8、从1.1.3和1.2.0-beta以来的bug fixed.


欢迎使用和建议。

下载地址:
http://code.google.com/p/xmemcached/downloads/list



评论

# re: XMemcached发布1.2.0-RC1  回复  更多评论   

2009-09-09 11:21 by bsli123@hotmail.com
能否支持集群模式,类似alisoft-xplatform-asf-cache-2.5.2实现的一样,支持备份缓存节点?

# re: XMemcached发布1.2.0-RC1  回复  更多评论   

2009-09-09 13:37 by dennis
@bsli123@hotmail.com
这个其实有考虑过,但是从分层的角度上来说,我认为备份重要的需求还是应该应用自己来实现,在xmemcached的基础上封装。xmemcached的定位是一个java client,我不认为它应该承担太多。

只有注册用户登录后才能发表评论。


网站导航: