已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,Memcached缓存技术浅谈,刘敬之,.,2,Memcached是什么,解决什么问题?,Memcached应用于数据库和应用服务之间以减轻数据库负载。它通过在内存中缓存数据和对象来减少数据库的访问次数,从而提高响应速度。Memcached是基于存储键/值对的hashmap。其守护进程(daemon)是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。,.,3,基于memcached的应用系统架构图,数据库,Memcached缓存服务器,应用服务器,浏览器,.,4,Memcached的优缺点,内存存储,速度快、对内存要求高、对CPU要求低分布式扩展,多个Memcached服务端组成集群环境Socket通信,传输内容的大小以及序列化内存分配机制,LRU、上限1MCache机制简单,把东西放进去,然后可以取出来客户端的重要性:客户端设计的合理十分重要,同时也给使用者提供了很大的空间去扩展和设计客户端来满足各种场景的需要,包括容错,权重,效率,特殊的功能性需求,嵌入框架等等,.,5,memcached客户端分类,gwhalin_memcachedspymemcachedalisoft_memcachedxmemcached,.,6,gwhalin_memcached,说明:memcached官方提供的客户端官方地址:,.,7,spymemcached,说明:基于java1.5nio非阴塞的客户端官方地址:,.,8,alisoft_memcached,说明:基于whalin_memcached客户端的优化封装官方地址:,.,9,xmemcached,说明:基于spymemcached客户端的优化封装官方地址:,.,10,memcached客户端的选择,功能方面:四种memcached客户端中只有alisoft_memcached具备了数据热备功能,而xmemcached拥有非常强大的组件支持功能,所以这二者较优。性能方面:由于alisoft_memcached是对gwhalin_memcached的封装,而xmemcached是基于spymemcached的改进,所以对alisoft_memcached和xmemcached分别进行了单server、集群环境、不同线程、put、get等方式的性能测试,得出结论:xmemcached的性能较优。,.,11,xmemcached和alisoft_memcached性能测试一,单server、10万对象数据、不同线程数、put方式性能比较,.,12,xmemcached和alisoft_memcached性能测试二,单server、10万对象数据、不同线程数、get方式性能比较,.,13,xmemcached和alisoft_memcached性能测试三,集群、10万对象数据、不同线程数、put方式性能比较,.,14,xmemcached和alisoft_memcached性能测试四,集群、10万对象数据、不同线程数、get方式性能比较,.,15,xmemcached和alisoft_memcached性能测试五,集群、50个线程、不同请求资源数、put方式性能比较,.,16,xmemcached和alisoft_memcached性能测试六,集群、50个线程、不同请求资源数、get方式性能比较,.,17,xmemcached和alisoft_memcached性能测试七,集群、100个线程、不同请求资源数、put方式性能比较,.,18,xmemcached和alisoft_memcached性能测试八,集群、100个线程、不同请求资源数、get方式性能比较,.,19,封装xmemcached,出于性能考虑决定选则xmemcached作为memcached客户端,但由于xmemcached不具备数据热备,服务动态切换等功能,现对其进行封装完善以满足我们的系统需求。,功能点一:在xmemcached添加数据热备功能。实现方案:以异步守护线程方式初始数据队列LinkedBlockingQueuequeue;重写原memcachedclient的put方法在原put方法基础上将数据加入queue队列中,并在异步线程中处理queue中数据,将数据同步到slaveserver(备份服务器)。,.,20,封装xmemcached,功能点二:封装xmemcached实现主-从服务器动态切换功能。实现方案:以HeartBeat心跳,监听memcached主-从服务器中服务器运行状态,当主服务器服务连接不可用时,调用reload方法实现主-从服务器切换,并将HeartBeat监听信息单独提取,记录在heartbeat.log以便日志分析,可以根据日志信息及时处理主-从服务器中发生异常连接的memcached服务器。,.,21,说明:这种设计仅限于一般中小型应用,masterserver和slaveserver各自只有一台服务器,在后续第二阶段设计中将完善大型应用扩展masterservers和slaverservers将主-从服务器均设置多台以提高效率。第二阶段中采用主-从多台服务器,主服务器群其中一台server1宕机或连接异常时应采用不同的策略,可设置重连次数N,当重连N次后仍然未能连接上,则认定此server1宕机,这时主-从服务器群自动漂移,由守护线程继续检测,恢复正常后修补数据(将宕掉的server1中数据从当前主服务器群中同步到从服务器群中);重连N次内如果重连成功,则视为server1未宕机只是网络中断,这时不需要自动切换主-从服务器群。,.,22,封装xmemcached,功能点三:添加Ehcache作为本地缓存策略。实现方案:重写原Ehcache的put、get方法,定义ConcurrentHashMapexpiryCache存放key=time(即以put时传入key为健,传入time作为值存入map),然后当get的时候首先检查key在expiryCache中对应缓存时间是否过期。,.,23,说明:本阶段对Ehcache的支持仅限于单server,而我们大部分的应用都是分布式的,在这种环境中就需要和集群中其他CacheManager进行通信,以解决缓存失效通知的问题。方案:Ehcache缓存同步有五种策略RMI:在ehcache的默认配置文件ehcache.xml中定义CacheManagerPeerProviderFactory节点并创建RMICacheManagerPeerProviderFactory实例,和集群中其它CacheManger通信。JGroups:在ehcache的默认配置文件ehcache.xml中定义CacheManagerPeerProviderFactory节点并创建,.,24,JGroupsCacheManagerPeerProviderFactory实例,和集群中其它CacheManger通信。Terracotta:将EHcache加入到terracottaservice中管理。JMS:通过JMS做失效通知
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南省邵阳市公安招聘辅警考试试卷及答案
- 道路交通安全整治百日行动工作总结资料15篇
- 九年级历史下册 第二单元 第5课《文学艺术的繁荣》教学设计1 华东师大版
- 人教版(2024)笔算乘法第二课时教案及反思
- 本册综合教学设计-2025-2026学年小学地方、校本课程人教川教版生命·生态·安全
- 第1节 认识电子表格教学设计初中信息技术粤教版2013第二册-粤教版2013
- 初中英语Lesson 29 A Birthday Card教案
- 乳腺癌软脑膜转移诊疗中国专家共识重点2026
- 地理第一单元 自然资源与国家安全第四节 海洋空间资源与国家安全教案设计
- 上海交通大学出版社教学设计中职中职专业课职业素养公共课程
- 煤气净化回收工安全生产规范考核试卷含答案
- 房车改装采购合同范本
- 工程质量潜在缺陷保险项目风险评估报告
- 2025外交部所属事业单位招聘95人(公共基础知识)综合能力测试题附答案
- 安全环境职业健康法律法规文件清单(2025年12月版)
- 2025年山西药科职业学院单招综合素质考试题库附答案解析
- 校园图书馆安全检查记录表
- DB32∕T 5188-2025 经成人中心静脉通路装置采血技术规范
- GB/T 9641-2025硬质泡沫塑料拉伸性能的测定
- 《医疗器械不良事件监测和再评价管理办法》培训试卷+参考答案
- 金融专题党课
评论
0/150
提交评论