




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Memcached 缓存技术浅谈,刘敬之,Memcached是什么,解决什么问题?,Memcached应用于数据库和应用服务之间以减轻数据库负载。它通过在内存中缓存数据和对象来减少数据库的访问次数,从而提高响应速度。 Memcached是基于存储键/值对的hashmap。其守护进程(daemon)是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。,基于memcached的应用系统架构图,数据库,Memcached 缓存服务器,应用服务器,浏览器,Memcached的优缺点,内存存储,速度快、对内存要求高、对CPU要求低 分布式扩展,多个Memcached服务端组成集群环境 Socket通信,传输内容的大小以及序列化 内存分配机制,LRU、上限1M Cache机制简单,把东西放进去,然后可以取出来 客户端的重要性:客户端设计的合理十分重要,同时也给使用者提供了很大的空间去扩展和设计客户端来满足各种场景的需要,包括容错,权重,效率,特殊的功能性需求,嵌入框架等等,memcached客户端分类,gwhalin_memcached spymemcached alisoft _memcached xmemcached,gwhalin_memcached,说明: memcached官方提供的客户端 官方地址: /gwhalin/Memcached-Java-Client/wiki/ 简介: 官方提供的基于传统阻塞io由Greg Whalin维护的客户端 最新版本:java_memcached-release_2.6.1.zip 优点:memcached官方提供的java客户端,应用最为广泛,性能稳定。 缺点:基于传统阻塞io,不具备memcached之间数据热备功能,客户端访问memcached服务端不命中直接请求数据源。,spymemcached,说明:基于java1.5 nio非阴塞的客户端 官方地址:/p/spymemcached/ 简介:由Dustin Sallings实现的基于java1.5 nio的客户端 最新版本:spymemcached-2.7.jar 优点:基于java1.5 nio 缺点:应用不广泛,性能稳定性较差,,不具备memcached之间数据热备功能。,alisoft _memcached,说明:基于whalin_memcached客户端的优化封装 官方地址:/p/memcache-client-forjava/ 简介:阿里巴巴架构师岑文初开发的基于whalin_memcached的客户端 最新版本:alisoft-xplatform-asf-cache-2.5.1.jar 优点:支持错误转移和数据备份,支持本地缓存等 缺点:测试性能不是最优。,xmemcached,说明:基于spymemcached客户端的优化封装 官方地址:/p/xmemcached/ 简介:淘宝架构师伯岩开发的基于spymemcached的客户端 最新版本: xmemcached-1.3.3-bin-with-dependencies.tar.gz 优点:支持各种协议功能,功能丰富。 缺点:不具备memcached之间数据热备功能。,memcached客户端的选择,功能方面:四种memcached客户端中只有alisoft_memcached具备了数据热备功能,而xmemcached拥有非常强大的组件支持功能,所以这二者较优。 性能方面:由于alisoft_memcached是对gwhalin_memcached的封装,而xmemcached是基于spymemcached的改进,所以对alisoft_memcached和xmemcached分别进行了单server、集群环境、不同线程、 put、get等方式的性能测试,得出结论:xmemcached的性能较优。,xmemcached和alisoft_memcached性能测试一,单server、10万对象数据、不同线程数、put方式性能比较,xmemcached和alisoft_memcached性能测试二,单server、10万对象数据、不同线程数、get方式性能比较,xmemcached和alisoft_memcached性能测试三,集群、10万对象数据、不同线程数、put方式性能比较,xmemcached和alisoft_memcached性能测试四,集群、10万对象数据、不同线程数、get方式性能比较,xmemcached和alisoft_memcached性能测试五,集群、50个线程、不同请求资源数、put方式性能比较,xmemcached和alisoft_memcached性能测试六,集群、50个线程、不同请求资源数、get方式性能比较,xmemcached和alisoft_memcached性能测试七,集群、100个线程、不同请求资源数、put方式性能比较,xmemcached和alisoft_memcached性能测试八,集群、100个线程、不同请求资源数、get方式性能比较,封装xmemcached,出于性能考虑决定选则xmemcached作为memcached客户端,但由于xmemcached不具备数据热备,服务动态切换等功能,现对其进行封装完善以满足我们的系统需求。,功能点一: 在xmemcached添加数据热备功能。 实现方案: 以异步守护线程方式初始数据队列 LinkedBlockingQueue queue; 重写原memcachedclient的put方法在原put方法基础上将数据加入queue队列中,并在异步线程中处理queue中数据,将数据同步到slave server(备份服务器)。,封装xmemcached,功能点二: 封装xmemcached实现主-从服务器动态切换功能。 实现方案: 以HeartBeat 心跳,监听memcached主-从服务器中服务器运行状态,当主服务器服务连接不可用时,调用reload方法实现主-从服务器切换,并将HeartBeat监听信息单独提取,记录在heartbeat.log以便日志分析,可以根据日志信息及时处理主-从服务器中发生异常连接的memcached服务器。,说明: 这种设计仅限于一般中小型应用,master server和slave server各自只有一台服务器,在后续第二阶段设计中将完善大型应用扩展master servers和slaver servers将主-从服务器均设置多台以提高效率。 第二阶段中采用主-从多台服务器,主服务器群其中一台server1宕机或连接异常时应采用不同的策略,可设置重连次数N,当重连N次后仍然未能连接上,则认定此server1宕机,这时主-从服务器群自动漂移,由守护线程继续检测,恢复正常后修补数据(将宕掉的server1中数据从当前主服务器群中同步到从服务器群中);重连N次内如果重连成功,则视为server1未宕机只是网络中断,这时不需要自动切换主-从服务器群。,封装xmemcached,功能点三: 添加Ehcache作为本地缓存策略。 实现方案: 重写原Ehcache的put、get方法,定义ConcurrentHashMap expiryCache存放key=time(即以put时传入key为健,传入time作为值存入map),然后当get的时候首先检查key在expiryCache中对应缓存时间是否过期。,说明: 本阶段对Ehcache的支持仅限于单server,而我们大部分的应用都是分布式的,在这种环境中就需要和集群中其他CacheManager进行通信,以解决缓存失效通知的问题。 方案: Ehcache缓存同步有五种策略 RMI: 在ehcache的默认配置文件ehcache.xml中定义CacheManagerPeerProviderFactory节点并创建RMICacheManagerPeerProviderFactory实例,和集群中其它CacheManger通信。 JGroups : 在ehcache的默认配置文件ehcache.xml中定义CacheManagerPeerProviderFactory节点并创建,JGroupsCacheManagerPeerProviderFactory实例,和集群中其它CacheManger通信。 Terracotta: 将EHcache加入到terra
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年未来教育模式发展趋势分析报告及答案解析
- 2025年微生物学基本原理与应用测试试题及答案
- 2025年网站建设与管理师能力考核试题及答案
- 2025年网络营销推广师综合素质考核试题及答案
- 2025年交通管理用金属标志及类似设施项目发展计划
- 分步计数原理课件
- 2025年博物馆服务项目建议书
- 内蒙古历年中考数学试卷
- 南丰期中考试数学试卷
- 辽宁点石数学试卷
- 喷射混凝土工艺性试验总结
- 北京市各县区乡镇行政村村庄村名明细
- 笔迹、指纹鉴定申请书
- 古建亭子CAD施工图集
- 生产效率提升培训教材课件
- 长沙市历年中考数学试卷,2014-2021年长沙中考数学近八年真题汇总(含答案解析)
- 【英语】人教版英语八年级英语下册阅读理解专题复习练习(含解析)
- 《植物生理学》课件第四章+植物的呼吸作用
- 2022版义务教育语文课程标准(2022版含新增和修订部分)
- 2022年出差管理制度员工出差管理制度
- 光学第一章-费马原理与变折射率光学
评论
0/150
提交评论