永无止境之网站的伸缩性架构.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
永无止境之网站的伸缩性架构

(3) 反向代理负载均衡 Web服务器不需要使用外部IP地址,而反向代理服务器则需要配置双网卡和内外部两套IP地址。 此方案的优点是 应用服务器和反向代理服务器功能集成在一起,部署简单 。 缺点是 反向代理服务器是所有请求和响应的中转站, 其性能可能会成为瓶颈 。 (4) IP负载均衡 (4) IP负载均衡 此方案优点在于在 内核进程 完成数据分发,较反向代理负载均衡(在应用程序中分发数据)有更好的处理性能。 缺点是由于所有请求响应都需要经过负载均衡服务器,集群的最大响应数据吞吐量不得不 受制于负载均衡服务器网卡带宽 。 (5) 数据链路层负载均衡 (5) 数据链路层负载均衡 此种方式又称作 三角传输模式 ,负载均衡数据分发过程中不修改IP地址,只修改mac地址,由于实际处理请求的真实物理IP地址和数据请求目的IP地址一致,所以不需要通过负载均衡服务器进行地址转换,可将响应数据包直接返回给用户浏览器,避免负载均衡服务器网卡带宽成为瓶颈。这种负载均衡方式又称作 直接路由方式(DR) 。 使用三角传输模式的链路层负载均衡是目前大型网站使用最广泛的一种负载均衡手段 。在Linux平台上最好的链路层负载均衡开源产品是LVS(Linux Virutal Server)。 负载均衡算法 前面的方法解决了负载均衡通过何种方式实现,而更为重要的则是如何从Web服务器列表中计算得到一台Web服务器的地址,而这正是负载均衡的核心—算法。 (1)轮询 所有请求被以此分发到每台应用服务器上,即每台服务器需要处理的请求数目都相同,适合于所有服务器硬件都相同的场景。 负载均衡算法 (2)加权轮询 根据应用服务器的配置性能的情况,在轮询的基础上,按照配置的权重将请求分发到每个服务器,高性能的服务器能分配更多的请求。 (3)随机 此算法比较简单实用,请求被随机分配到各个应用服务器,因为好的随机数本身就很均衡。 (4)最少连接 记录每个应用服务器正在处理的连接数(请求数),将新到的请求分发到最少连接的服务器上,应该说,这是最符合负载均衡定义的算法。 负载均衡算法 (5) 源地址散列 根据请求来源的IP地址进行Hash计算得到应用服务器,这样 来自同一个IP地址的请求总在同一个服务器上处理 ,该请求的上下文信息可以存储在这台服务器上,在一个会话周期内重复使用,从而实现会话粘滞。 分布式缓存集群的伸缩性设计 不同于应用服务器集群的伸缩性设计,分布式缓存集群的伸缩性不能使用简单的负载均衡手段来实现。 因为: 分布式缓存服务器集群中缓存的数据各不相同,缓存访问请求不可以在缓存服务器集群中的任意一台处理,必须先找到缓存有需要的数据的服务器,然后才能访问 。 分布式缓存集群伸缩性设计的目标: 让新上线的缓存服务器对整个分布式缓存集群影响最小 。也就是说新加入缓存服务器后应使整个缓存服务器集群中已经缓存的数据尽可能还被访问到。 分布式缓存集群的伸缩性设计 (1)以Memcached为代表的分布式缓存集群的访问模型 (1)以Memcached为代表的分布式缓存集群的访问模型 典型的缓存写操作 (1)以Memcached为代表的分布式缓存集群的访问模型 以上图片展示了一个典型的缓存写操作,应用程序需要写缓存数据CHENGDU,DATA,API将KEY(CHENGDU)输入路由算法模块,路由算法根据KEY和Memcached服务器集群列表计算得到一台服务器编号(如Node1),进而得到该机器的IP地址和端口(:91000)。然后,API调用通信模块和编号为Node1的Memcached服务器进行通信,将数据CHENGDU,DATA写入该服务器,至此便完成了一次分布式缓存的写操作。 而读操作和写操作一样,使用同样的路由算法和服务器列表,只要提供相同的KEY(如上面提到的CHENGDU),Memcached客户端总是访问相通的服务器(如上面计算得到的Node1)去读取数据。 (2)以Memcached为代表的分布式缓存集群的伸缩性挑战 简单的路由算法(通过使用余数Hash)无法满足业务发展时服务器扩容的需要: 缓存命中率下降 。例如:当3台服务器扩容至4台时,采用普通的余数Hash算法会导致大约75%(3/4)被缓存了的数据无法正确命中,随着服务器集群规模的增大,这个比例会线性地上升。那么,可以想象,当100台服务器的急群众加入一台服务器,不能命中的概率大概是99%(N/N+1),这个结果显然是无法接受的。 那么,能否通过改进路由算法,使得新加入的服务器不影响大部分缓存数据的正确性呢?请看下面的一致性Hash算法。 (3) 分布式缓存的 一致性Hash 算法 说明: 一致性Hash算法是分布式缓存的核心理论。一致性Hash算法通过一个叫做一致性Hash环的数据结构

文档评论(0)

335415 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档