Qwen3 惊喜上线阿里云百炼,8款模型全开源!点击免费领取 800万 tokens! 了解详情
写点什么

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

  • 2009-10-21
  • 本文字数:1240 字

    阅读完需:约 4 分钟

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

2009-10-21 03:2110806

评论

发布
暂无评论
发现更多内容

Redis和MySQL扛不住,B站分布式存储系统如何演进?

Java你猿哥

Java MySQL redis ssm kv

来了!昇腾MindStudio全流程工具链分论坛精彩回顾,助力高效开发和迁移效率提升

科技热闻

重磅发布!阿里巴巴专家亲自撰写,Dubbo 3.0 分布式实战(彩印版)

Java 分布式 微服务 dubbo

AI 大底座,大模型时代的答卷

百度Geek说

人工智能 百度 文心一言 企业号 5 月 PK 榜

责任链模式在复杂数据处理场景中的实战

阿里技术

设计模式 技术实践

零信任是什么意思?与堡垒机有什么区别?

行云管家

网络安全 堡垒机 零信任

MySQL百万数据深度分页优化思路分析

Java你猿哥

Java MySQL 数据库 ssm 优化技术

云数据库技术沙龙|多云多源下的数据复制技术解读-NineData

NineData

MySQL Clickhouse 数据管理 多云多源 数据存取

Java并发编程必备:分布式锁的选型和性能对比

Java 数据库 分布式锁

阿里官方上线!号称Java面试八股文天花板(2023最新版)首次开源

Java你猿哥

Java redis Spring Boot JVM java面试

精选!字节大佬带你一周刷完Java面试八股文,比啃书效果好多了

Java你猿哥

Java 算法 ssm java面试 java知识点

在Bamboo上怎么使用iOS的单元测试 | 京东云技术团队

京东科技开发者

ios 单元测试 代码覆盖率 Bamboo 企业号 5 月 PK 榜

一周吃透Java面试八股文(2023最新整理)

Java你猿哥

Java kafka Spring Boot JVM java面试

从浏览器输入域名开始分析DNS解析过程

华为云开发者联盟

开发 华为云 DNS 华为云开发者联盟 企业号 5 月 PK 榜

阿里全新推出:微服务突击手册,把所有操作都写出来了|超清PDF

Java 架构 微服务 Spring Cloud spring cloud alibaba

独家巨献!阿里专家兼Github贡献者,整理的SpringBoot入门到成神

Java spring 架构 微服务 Spring Boot

本周日直播,全链路数据治理实践论坛开放报名

阿里云大数据AI技术

大数据 数据治理

震撼来袭!最具中国特色的微服务组件:新一代SpringCloud Alibaba

Java 架构 微服务 Spring Cloud spring cloud alibaba

k8s+Docker部署方法

Java你猿哥

Java Docker k8s ssm 架构师

硬核!阿里最新出品架构核心场景实战手册,解决99%的架构问题

Java你猿哥

微服务 架构设计 架构师 架构场景实战 微服务实战

基于图神经网络的推荐算法

TiAmo

神经网络 算法 推荐算法

牛掰!阿里架构师熬夜肝了一份JVM必知必会,哪里不会查哪里

Java 性能优化 JVM

构建万物互联,华为云IoT+鸿蒙重燃物体感知

华为云开发者联盟

鸿蒙 物联网 华为云 华为云开发者联盟 企业号 5 月 PK 榜

用户分享 | Dockquery,一个国产数据库客户端的初体验

BinTools图尔兹

用户体验 国产数据库工具

一路同行,端点科技与海尔集团相伴十年的数字之旅

科技热闻

如何选择最优权限框架?Sa-Token 和 Shiro 对比

shiro Sa-Token

开源之夏 2023 | 与 Databend 一同探索云数仓的魅力

Databend

Webpack5构建性能优化:构建耗时从150s到60s再到10s | 京东云技术团队

京东科技开发者

性能优化 webpack webpack-tapable 企业号 5 月 PK 榜

如何选择正确的压缩方式?

ScaleFlux

智能硬件 数据压缩 计算存储 NVMeSSD

鲸鸿动能广告接入如何高效变现流量?

HarmonyOS SDK

HMS Core

XMemcached——一个新的开源Java memcached客户端_Java_霍太稳@极客邦科技_InfoQ精选文章