淘宝网用什么技术架构来实现网站高负载的.pdfVIP

淘宝网用什么技术架构来实现网站高负载的.pdf

  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文档。上传文档
查看更多
淘宝网采用什么技术架构来实现网站高负载的 一应用无状态(淘宝session框架) 俗话说,一个系 统的伸缩性的好坏取决于应用的状态如何管理。为什么这么 说呢?咱们试想一下,假如我们在session 中保存了大量与客户端的状态信 息的 话,那么当保存状态信息的server宕机的时候,我们怎么办?通常来说,我们都 是通过集群来解决这个问题,而通常 所说的集群,不仅有负载均衡,更重要的 是要有失效恢复failover,比如tomcat采 用的集群节点广播复制,jboss采 用的 配对复制等session状 态复制策略,但是集群中的状态恢复也有其缺点,那就是 严重影响了系统的伸缩性,系统不能通过增加更多的机器来达到良好的水平伸缩, 因为集群节点间session的 通信会随着节点的增多而开销增大,因此要想做到应 用本身的伸缩性,我们需要保证应用的无状态性,这样集群中的各个节点来说都 是相同的,从而是的系统更好的 水平伸缩。 OK, 上面说了无状态的重要性,那么具体如何实现无状态呢?此时一个 session框架就会发挥作用了。幸运的是淘 宝已经具有了此类框架。淘宝的 session框架采用的是clientcookie实现,主要将状态 保存到了cookie里 面,这 样就使得应用节点本身不需要保存任何状态信息,这样在系统用户变多的时候, 就可以通过增加更多的应用节点来达到水平扩展的目的.但 是采用客户端cookie 的 方式来保存状态也会遇到限制,比如每个cookie一般不能超过4K 的大小, 同时很多浏览器都限制一个站点最 多保存20个cookie.淘 宝cookie框 架采用 的是 “多值cookie”,就是一个组合键对应多个cookie的 值,这样不仅可以防 止cookie数 量超过20,同时还节省了cookie存 储有效信息的空间,因为默认 每个cookie都会有大约50个字节的元信息来描述cookie。 除 了淘宝目前的session框 架的实现方式以外,其实集中式session管理来 完成,说具体点就是多个无状态的应用节点连接一个session服 务器,session 服 务器将session保 存到缓存中,session服 务器后端再配有底层持久性数据 源,比如数据库,文件系统等等。 二有效使用缓存(Tair) 做 互联网应用的兄弟应该都清楚,缓存对于一个互联网应用是多么的重要, 从浏览器缓存,反向代理缓存,页面缓存,局部页面缓存,对象缓存等等都是缓 存应用的场 景。 一 般来说缓存根据与应用程序的远近程度不同可以分为:local cache和remotecache。一般系统中要么采用localcache,要么采用remotecache, 两者混合使用的话对 于localcache和remotecache的数据一致性处理会变 大比 较麻烦. 在 大部分情况下,我 们所说到的缓存都是读缓存,缓存还有另外一个类型:写 缓存. 对 于一些读写比不高,同时对数据安全性需求不高的数据,我们可以将 其缓存起来从而减少对底层数据库的访问,比如 统计商品的访问次数,统 计API 的 调用量等等,可 以采用先写内存缓存然后延迟持久化到数据库,这样可以大 大减少对数据库的写压力。 OK, 我以店铺线的系统为例,在用户浏览店铺的时候,比如店铺介绍,店 铺交流区页面,店铺服务条款页面,店铺试衣间页面,以及店铺内搜索界面这些 界面更新不是非 常频繁,因此适合放到缓存中,这样可以大大减低DB的负载。 另外宝贝详情页面相对也更新比较 少,因此也适合放到缓存中来减低DB负载。 三应用拆分(HSF) 首 先,在说明应用拆分之前,我们先来回顾一下一个系统从小变大的过程 中遇到的一些问题,通过这些问题我们会发现拆分对于构建一个大型系统是如何 的重要。 系 统刚上线初期,用户数并不多,所有的逻辑也许都是放在一个系统中的, 所有逻辑跑到一个进程或者一个应用当中,这个时候因为比较用户少,系统访问 量低,因此 将全部的逻辑都放在一个应用未尝不可。但是,兄弟们都清楚,好 景不长,随着系统用户的不断增加,系统的访问压力越来越多,同时随着系统发 展,为了满足用户 的需求,原有的系统需要增加新的功能进来,系统变得越来 越复杂的时候,我们会发现系统变得越来越难维护,难扩展,同时系统伸缩性和 可用性也会受到影响。那 么这个时候我们如何解决这些问题呢?明智的办法就 是拆分 (这也算是一种解耦),我们需要将原来的系统根据一定的标准,比如业 务相关性等分为不同的子系统, 不同的系统负责不同的功能,这样切分以后,

文档评论(0)

qicaiyan + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档