网站大量收购独家精品文档,联系QQ:2885784924

jsp ssh实现校园课程作业网项目源码.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

MemCachedCacheJavaClient封装优化历程

Author:

Email:wenchu.cenwc@

Blog:

Memcached介绍

Memcached是一种集中式Cache,支持分布式横向扩展。这里需要有点说明,很多开发

者觉得Memcached是一种分布式Cache,但是其实Memcached服务端本身是单实例的,只

是在客户端实现过程中可以根据的主键作分区,而这个区就是Memcached服务端

的一个或者多个实例,如果将客户端也囊括到Memcached中,那么可以部分概念上说是集

中式的。其实回顾一下集中式的构架,无非两种情况:1.节点均衡的网状(JBossTreeCache),

利用JGroup的多播通信机制来同步数据。2.Master-Slaves模式(分布式文件系统),由Master

来管理Slave,如何选择Slave,如何迁移数据,都是由Master来完成,但是Master本身也

存在单点问题。

总结几个它的特点来理解一下它的优点和限制。

Memory:内存,不言而喻,速度快,对于内存的要求高,不的话所缓存的内

容非持久化。对于CPU要求很低,所以常常采用将Memcached服务端和一些CPU高消耗

Memory低消耗应用部属在一起。(作为我们AEP正好有这样的环境,我们的接口服务器有

多台,接口服务器对于CPU要求很高(由于WS-Security),但是对于Memory要求很低,因

此可以用作Memcached的服务端部属机器)

集中式Cache:避开了分布式Cache的问题,但是需要非单点保证其可靠性,这个

就是后面集成中所作的cluster的工作,可以将多个Memcached虚拟的cluster,同

时对于cluster的读写和普通的memcached的读写性能没有差别。

分布式扩展:Memcached的很突出一个优点,就是采用了可分布式扩展的模式。可以

将部属在一台机器上的多个Memcached服务端或者部署在多个机器上的Memcached服务

端组成一个虚拟的服务端,对于调用者来说完全和透明。提高的单机器的内存利用率,

也提供了scaleout的方式。

Socket通信:传输内容的大小以及序列化的问题需要注意,虽然Memcached通常会被

放置到内网作为Cache,Socket传输速率应该比较高(当前支持Tcp和udp两种模式,同时

根据客户端的不同可以选择使用nio的同步或者异步调用方式),但是序列化成本和带宽成

本还是需要注意。这里也提一下序列化,对于对象序列化的性能往往让大家头痛,但是如果

对于同一类的Class对象序列化传输,第一次序列化时间比较长,后续就会优化,其实也就

是说序列化最大的消耗不是对象序列化,而是类的序列化。如果穿过去的只是字符串,那么

是最好的,省去了序列化的操作,因此在Memcached中保存的往往是较小的内容。

特殊的内存分配机制:首先要说明的是Memcached支持最大的对象为1M。它的

内存分配比较特殊,但是这样的分配方式其实也是对于性能考虑的,简单的分配机制可以更

容易回收再分配,节省对于CPU的使用。这里用一个酒窖比喻来说明这种内存分配机制,

首先在Memcached起来的时候可以通过参数设置使用的总共的Memory,这个就是建造一

个酒窖,然后在有酒进入的时候,首先申请(通常是1M)的空间,用来建酒架,酒架根据

这个酒瓶的大小分割酒架为多个小格子安放酒瓶,将同样大小范围内的酒瓶都放置在一类酒

架上面。例如20cm半径的酒瓶放置在可以容纳20-25cm的酒架A上,30cm半径的酒瓶就

放置在容纳25-30cm的酒架B上。回收机制也很简单,首先新酒入库,看看酒架是否有可以

回收的地方,如果有直接使用,如果没有申请新的地方,如果申请不到,采用配置的过期策

略。这个特点来看,如果要放的内容大小十分离散,同时大小比例相差梯度很明显,那么可

能对于使用空间来说不好,可能在酒架A上就放了一瓶酒,但占用掉了一个酒架的位置。

Cache机制简单:有时候很多开源的项目做的面面俱到,但是最后也就是因为过于注重

您可能关注的文档

文档评论(0)

159****9610 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6044052142000020

1亿VIP精品文档

相关文档