3) xmemcached XMemcached同样是基于java nio的客户端,java nio相比于传统阻塞io模型来说,有效率高(特别在高并发下)和资源耗费相对较少的优点。 因此 XMemcached与Spymemcached在性能都非常优秀,在某些方面(存储的数据比较小的情况下)Xmemcached比 Spymemcached的表现更为优秀,具体可以看这个Java Memcached Xmemcached的官方网址是:http://code.google.com/p/xmemcached/,可以从其官网上下载最新版本的1.2.4 来使用。 地址是:http://xmemcached.googlecode.com/files/xmemcached-1.2.4-src.tar.gz 。 ; import net.rubyeye.xmemcached.MemcachedClient; import net.rubyeye.xmemcached.MemcachedClientBuilder
技术整合 memcached未被springboot收录为缓存解决方案 memcached目前提供有三种客户端技术,分别是Memcached Client for Java、SpyMemcached和Xmemcached ,其中性能指标各方面最好的客户端是Xmemcached,本次采用的也是Xmemcached 步骤①:导入xmemcached的坐标 <dependency> <groupId>com.googlecode.xmemcached </groupId> <artifactId>xmemcached</artifactId> <version>2.4.7</version> </dependency> 步骤②:配置memcached 步骤③:使用xmemcached客户端操作缓存,注入MemcachedClient对象 @Service public class SMSCodeServiceImpl implements SMSCodeService MemcachedClient memcachedClient = memcachedClientBuilder.build(); return memcachedClient; } } 导入xmemcached
从2012年开始,陆续阅读了 Cobar、Druid、Xmemcached、RocketMQ、MetaQ、Canal、ShardingJdbc、Sofa-Jraft 等开源项目。 这篇文章,聊聊笔者阅读 Xmemcached 源码的心得体会,希望对大家有所帮助。 1 Xmemcached 简介 XMemcached 是一个 Java memcached 客户端。 笔者当时服务于一家彩票公司,公司的核心系统订单服务、调度中心、业务网关都使用 XMemcached 操作 memcached 。 笔者花了接近两个月的时间将 Xmemcached 源码浏览了一次。 对于 Xmemcached 源码作者,笔者也一直抱着非常欣赏和学习的态度,他的另外一个非常有名的作品 MetaQ ,笔者也阅读过多次,颇有心得,改天和大家分享。
-- XMemcached Client --> <dependency> <groupId>com.google.code.simple-xml</groupId> <artifactId>simple-xmemcached</artifactId> <version>4.0.6</version> </dependency></dependencies ;import net.rubyeye.xmemcached.XMemcachedClientBuilder;@Configurationpublic class CacheConfig { @Value -- XMemcached Client --> <dependency> <groupId>cloud.alipay</groupId> <artifactId>xmemcached 创建Memcached配置类创建一个配置类来配置Memcached客户端:import net.rubyeye.xmemcached.MemcachedClient;import net.rubyeye.xmemcached.XMemcachedClientBuilder
1 XMemcached介绍和环境构建 2 构建MemcachedClient对象 12 初探Memcached分布式原理 开两个不同进程,模拟分布式 14 余数Hash算法 15 一致性 Hash 算法 pom.xml 16 XMemcached整合SpringBoot 17 XMemcachedBuilder相关参数 18 代码演示
telnet ip 11211 SpringBoot整合MemCache Maven依赖 <dependency> <groupId>com.googlecode.xmemcached </groupId> <artifactId>xmemcached</artifactId> <version>2.4.5</version> import lombok.extern.slf4j.Slf4j; import net.rubyeye.xmemcached.Counter; import net.rubyeye.xmemcached.GetsResponse ; import net.rubyeye.xmemcached.MemcachedClient; import net.rubyeye.xmemcached.exception.MemcachedException } } private RuntimeException handleException(Exception e, String key) { log.warn("xmemcached
testsaslauthd -s /etc/pam.d/memcached -u 10000 -p pwd 0: OK "Success." ” memcached的java client,如spymemcached和xmemcached 都已经支持SASL认证了 “ #xmemcached认证示例 MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses
Java 使用 xmemcached 具体例子 ---- 1. 添加依赖 <dependency> <groupId>com.googlecode.xmemcached</groupId> <artifactId>xmemcached</artifactId
ServiceComb 29 Hystrix 30 Jedis 32 h2-jdbc-driver 33 mysql-connector-java 34 ojdbc 35 Spymemcached 36 Xmemcached
fixed fastjson: 1.2.31 zookeeper: 3.4.9 jedis: 2.9.0 xmemcached
需要在项目中引入对 memcached 的支持: <dependency> <groupId>com.googlecode.xmemcached</groupId> <artifactId >xmemcached</artifactId> <version>2.4.5</version> </dependency> 为什么 J2Cache 初始化时,连接本机的 Redis 非常慢
version> 85 </dependency> 86 87 <dependency> 88 <groupId>com.googlecode.xmemcached </groupId> 89 <artifactId>xmemcached</artifactId> 90 <version>1.3.6</version version> 86 </dependency> 87 88 <dependency> 89 <groupId>com.googlecode.xmemcached </groupId> 90 <artifactId>xmemcached</artifactId> 91 <version>1.3.6</version
现在我使用的是 XMemcached。
因mget请求导致整体接口服务响应慢,memc客户端发起重试2次,如果此时并发稍大些,同时会因无法从xmemcached连接池中获取连接而引发大量的TimeoutException, 出现TimeoutException
线程工厂 开源项目 Cobar ,Xmemcached,Metamorphosis 中都有类似线程工厂的实现 。 5 线程名很重要 线程名很重要,线程名很重要,线程名很重要 ,重要的事情说三遍。
图片 开源项目 Cobar ,Xmemcached,Metamorphosis 中都有类似线程工厂的实现 。
例如,Memcached 有 Xmemcached 和 Memcached-java-client , Redis 有 Jedis, Lettuce, 和 Redisson。
常见的Java客户端有Spymemcached和xMemcached。由于xMemcached采用了NIO模型,我们选用它作为接入库。
Java程序员熟悉的Memcached的客户端Spymemcached、Xmemcached以及Folsom都提供了Ketama算法。
CountDownLatch 实现网络同步请求是非常实用的技巧,在很多开源中间件里,比如 Metaq ,Xmemcached 都有类似的实现。