`
liudaoru
  • 浏览: 1558104 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

XMemcached——一个新的开源Java memcached客户端

    博客分类:
  • java
阅读更多

From: http://www.infoq.com/cn/news/2009/10/xmemcached-introduction

 

XMemcached是一个基于Java nio的memcached客户端。它线程安全,结构简单,支持所有的memcached文本协议和二进制协议,并且有比较优异的性能表现。它还支持一些高级特性,如JMX、动态增删节点、客户端统计以及nio连接池等。InfoQ中文站编辑采访了该工具的核心开发人员Dennis Zhuang。

和同类型的memcached客户端相比,XMemcached有什么特点?

与同是基于java nio的spymemcached相比来说,XMemcached具有以下特点:

1)API模型是同步,异步的API使用比较繁琐,在memcached协议加入noreply后,异步模型的存在价值就更可疑了; 
2)支持设置memcached的节点权重; 
3)支持动态增删节点,可以通过编程或者JMX; 
4)支持nio连接池,并且允许让用户对网络层面有更多的控制,提供更多的性能优化选项; 
5)支持客户端数据统计; 
6)支持Kestrel,Kestrel是一个scala编写的MQ server。

有其他项目使用Xmemcached吗?他们有没有给你一些有价值的反馈?

因为xmemcached是在今年下半年才开始发展的,因此用户并不多,就我所知有rensea.com(人间网)、dii.cn(滴,一种聊天工具)以及一些企业的内部项目在使用。非常感谢他们的信任。

rensea.com的开发者给了我很大帮助,他们的持续使用给了我一些有价值的反馈,例如在1.2.0-stable刚发布的时候,由于引入了心跳检测,发现在特定场景下心跳检测会引起xmemcached的性能急剧下降,存储数据总是超时。最后通过查找发现是由于网络层在连接的idle判断条件上有遗漏。这个问题已经在yanf4j 1.0.1上及时修正。

XMemcached在哪些方面还需要改进,下一步你计划实现哪些功能?

XMemcached需要改进的地方有两个:文档和二进制协议的实现。文档很不完善,因为精力有限,我希望能补上更完善的用户指南。其次是二进制协议的实现,在效率上还有可以提高的地方。

另外,在*nix系统上,对于同一台主机的应用和memcached,使用unix domain socket可以进一步提高效率,这也是XMemcached准备探索的一个方向。由于Java不支持unix domain socket,可能需要通过JNI来实现。

在和人间网创始人兼CTO曹晓钢的沟通中,他谈到人间网不仅使用XMemcached连接到memcached服务器,也使用它连接到kestrel服务器,很稳定的支持了网站的需求。在选用Xmemcached之前,曹晓钢对几个类似的工具进行了评估:

主要的备选还有spy memcached和岑文初的memcache-client-forjava。开始的时候,我们选用的是spy memcached。他的问题在于因为使用异步模型,使用比较繁琐,代码量比较大;看过memcache-client-forjava的代码,觉得其中夹杂了一些不应该由memcached client实现的功能,例如客户端缓存,比较担心其会带来一些潜在的问题。

选中XMemcached的另外一个原因是其经过了仔细的性能调试。当然最根本的一个原因是,当我们和开发者接触后,开发者的支持很到位,反应迅速,代码质量也很高。经过实际的验证,最终我们选定了XMemcached。

有关Xmemcached项目的更多信息请浏览Google Code上的项目主页wiki

分享到:
评论

相关推荐

    Java的开源高性能memcached客户端XMemcached.zip

    Xmemcached是基于java nio实现的高性能可扩展的memcached客户端。它的主要特点: 高性能,稳定可靠,已经在众多公司的众多项目里得到应用。 功能完备:客户端分布式、权重、最新最完整的协议支持。 ...

    memcached客户端(三种客户端)

    Memcached的java客户端已经存在三种了:官方提供的基于传统阻塞io由Greg Whalin维护的客户端;Dustin Sallings实现的基于java nio的Spymemcached;XMemcached

    memcached的三种java客户端jar

    Memcached的java客户端已经存在三种了: 1.官方提供的基于传统阻塞io由Greg Whalin维护的客户端。 较早推出的memcached JAVA客户端API,应用广泛,运行比较稳定。 2.spymemcached,支持异步,单线程的memcached客户端...

    Xmemcached用户指南

    XMemcached是一个新java memcached client。也许你还不知道memcached是什么?可以先看看这里。简单来说,Memcached 是一个高性能的分布式内存对象的key-value缓存系统,用于动态Web应用以减轻数据库负载,现在也有...

    Xmemcached测试实例

    测试类包括Xmemcached客户端与memcached client for java两者,可运行比较性能。 XMemcached简介: XMemcached是基于 java nio的Memcached客户端,java nio相比于传统阻塞 io 模型来说,有 效率高(特别在高并发下...

    xmemcached:高性能,易于使用的Java多线程memcached客户端

    介绍XMemcached是Java中的一种高性能,易于使用的阻塞多线程memcached客户端。 它是基于nio的,并且经过了精心设计,以实现最佳性能。快速开始:有助于源代码并将其签出到本地计算机。 进行更改并创建拉取请求。 ...

    Xmemcached 缓存开源项目源码及API

    虽然Java的memcached库已经很多,但是这些Java开源memcached库并没有一个是基于NIO框架编写,因此并不能够充分发挥Java NIO的性能优势.... xmemcached的项目主页在:http://code.google.com/p/xmemcached/

    Xmemcached memcached 实例

    类包括Xmemcached客户端实现和builder实现以及memcached client for java实现,对初学者有借鉴作用,特别是在开发简单例子时出现的超时情况的可以看看是否是同本事例相同。 xmemcached time out 5000 1000

    Xmemcached一个java实现的分布式缓存

    Xmemcached一个java实现的分布式缓存Xmemcached一个java实现的分布式缓存Xmemcached一个java实现的分布式缓存Xmemcached一个java实现的分布式缓存

    memcached java client

    java memcached client xmemcached memcache-client-forjava

    xmemcached jar包,源文件,api

    memcached 客户端 xmemcached jar 包,xmemcached 源文件 及 api

    xmemcached

    Java的memcached客户端,支持一致性hash算法,支持动态加服务器,减服务器

    memcached的java示例工程

    解压后将两个exe文件放到:D:\memcached-1.4.15 下 并改名为memcachedw32.exe 、 memcachedw64.exe 当然也可不该就是为了用起来方便 memcachedsimpletest.zip 示例工程源码 依赖的jar都在里面 解压后倒入到...

    xmemcached-1.4.2

    xmemcached-1.4.2最新版,可用。memcached java客户端

    memcached client for java

    谷歌对于memcached提供给Java的客户端有spymemcached、xmemcached、memcache-client-forjava等多种形式,但memcache-client-forjava是使用最多、最稳定的。里边的文件和文档(有中文文档)都是从官网下载的,里边的...

    xmemcached源码

    java的memcached客户端,支持一致性hash,支持动态增删服务器,客户端源码

    xmemcached-1.2.4源码

    XMemcached is a high performance, easy to use blocking multithreaded memcached client in java. It's nio based (using my opensource nio framework :yanf4j), and was carefully tuned to get top ...

    strom-xmemcached:Strom版Xmemcached客户端

    XMemcached 是一个高性能、易用的 Java 阻塞多线程 memcached 客户端。 它基于 nio 并经过精心设计以获得最佳性能。 ##新闻和下载 。 Maven 依赖: <groupId>com.googlecode.xmemcached</groupId> ...

    memcache-demo

    XMemcached 是一个新 java memcached client。下面我们以XMemcached为例,结合spring演示一下其使用。

    Xmemcached用户指南 后端 - Java.zip

    Xmemcached用户指南 后端 - Java.zip

Global site tag (gtag.js) - Google Analytics