




已阅读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届高三上化学期中复习检测模拟试题含解析
- 卫生习惯宣讲
- 如何打扫学校卫生
- 学前班学期末汇报展示
- 三顾茅庐课堂讲解
- 前端技术团队规划
- 胚胎学输卵管讲解
- 汽车电控技术发展
- 认养一头牛供应链体系解析
- 教师课堂管理方法和技巧课件
- 伍德灯在寻找炎症性皮肤病变中的应用价值研究
- 预防老年人保健品骗局
- 安全生产培训(完整版)课件
- 钢结构长廊施工方案
- 信保业务自查问题统计表
- 年产3万吨环保型铝箔容器系列产品生产线项目环境影响报告
- 安庆汇辰药业有限公司高端原料药、医药中间体建设项目环境影响报告书
- 关于术中知晓预防和脑功能监测专家共识
- 河道修防工高级工试题
- GB/T 4458.3-2013机械制图轴测图
评论
0/150
提交评论