Web缓存架构介绍.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Web 缓存架构介绍 1 计算机领域多处地方用到缓存,比如说为了缓解 CPU 和内存之间的速度不匹配问题,我们往往通过 增加一级、二级、三级缓存, CPU 先从缓存中取指令,如果取不到,再从内存中取,并更新缓存,同 时,根据程序的局部性原理,使得大部分情况下缓存都会命中。 目前,Web 应用的核心数据通常存放在数据库中, 比如说用户信息、 订单信息、 交易信息等, 同时, 数据库和编程语言是无关的,通过 SQL 交互, Java 、Php 等语言写的程序需要访问数据库,执行业 务逻辑, 展示结果给用户。 但是数据库有一定的局限性, 譬如: 1.数据库连接是非常 昂贵 的资源, 为了复用这些资源,目前采用连接池技术, 2. 连接池的连接数是有限的,如果用户过多,势必要等 待, 3. 读写数据时需要加锁。 通过上述介绍,我们知道一个大型系统中数据库往往会成为瓶颈,我们不能每次访问都访问数据库, 尤其是在多用户,大并发的情况下。面对这种情况,我们通常采用何种方法呢?在计算机行业中的所 有问题,都可以通过增加一个抽象层来解决。那么,针对数据库这个瓶颈,我们可以在应用层和数据 库层增加一层,即缓存层。 如何实现缓存 如果你是某某大型公司的首席架构师,现在公司需要自研一套缓存系统,你应该怎么设计呢?我想在 设计之前应该想好以下几个问题: 1. 缓存里放什么格式的数据? 2. 应用程序(客户端)如何访问缓存? 3. 缓存空间被应用程序用完了怎么办? 4. 要不要支持分布式存储(数据的分片),怎么实现? 2 1. 缓存里存放什么格式的数据 目前常见的数据格式有序列化对象、 XML 、JSON 、字符串( key,value )和基本的数据结构,其中针 对 Java 语言的序列化对象有序列化和反序列化, 而 Google 研发的 protobuf 是和语言无关的, 比如 说 Python 将某对象序列化, Java 能将这个对象进行反序列化。 2. 应用程序该如何访问缓存 考虑到公司有很多后端小组,并且使用不同的编程语言,这就要求我们自研的缓存系统应该和编程语 言无关,基于此,我们需要制定一套协议来支持各种语言。客户端如何使用这套协议?最常见的就是 客户端 / 服务器模型。首先,服务器监听请求;接着,客户端发送请求,获得响应,其中客户端发送 的请求就是协议;最后,基于 Socket 通信。比如说: set name mukedadaget name 3. 缓存空间被用完了怎么办? 缓存服务器端在启动的时候,应该设置缓存大小,当缓存被沾满时,采用 LRU 算法。 4. 实现分布式存储 对于大型应用服务器, 单机的缓存服务器是支撑不了的。 那么,就需要对缓存服务器进行水平扩展 (即 增删服务器,当活动结束后,就需要考虑删减服务器),那么用什么算法让数据相对平均的分配到每 台服务器?同时,这个算法应该放在客户端还是服务端呢? 1. 客户端实现 3 注意这里的客户端指的是 Web 应用服务,服务器列表信息通过配置文件获得。 当节点数发生变化时, 需要让客户端知晓。 它的典型应用是 Memcached ,Memcached 使用的是一致性 Hash 算法,在介绍它之前,我们先来 看一下余数算法。对于用户要存储的( key ,value ),计算 key 的整数哈希值,然后对服务器的数目 求余,这样来确

文档评论(0)

147****2695 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档