您的位置:首页 > 运维架构 > 网站架构

大型网站技术架构 读书笔记2.3 核心架构要素之可伸缩

2018-01-03 23:50 549 查看

三 网站的伸缩性架构

  伸缩性:不改变网站的软硬件设计,仅通过改变部署的服务器数量就可以扩大或缩小网站的服务处理能力。主要方式就是分布式部署集群

  集群作用与使用条件:使用服务器集群,通过增加服务器数量来增强整个集群的处理能力。前提是在技术上实现集群中服务器数量与处理能力的线性关系。

  网站架构的伸缩性设计:网站架构的伸缩性设计分为两种:根据功能进行物理分离实现伸缩;单一功能通过集群实现伸缩。在网站发展初期,使用前者;对于大型网站,主要使用后者。

3.1 应用服务器集群的伸缩性设计

  应用服务器无状态的,其通过负载均衡实现其伸缩性设计,将用户请求进行分发,下面介绍几种负载均衡技术

  1.HTTP重定向负载均衡:使用HTTP重定位服务器接收用户HTTP请求,计算得到真实Web服务器地址,并发送HTTP重定向响应返回给客户浏览器。缺点:1.需要两次请求才能完成一次访问;2. HTTP重定向服务器可能成为瓶颈。

  2. DNS域名解析负载均衡:利用DNS处理域名解析请求的同时进行负载均衡处理。缺点:解决1中问题的同时引入新缺点——控制权位于域名服务商DNS解析记录更改缓慢。该方式一般用于大型网站的第一级负载均衡手段

  3.反向代理负载均衡:利用反向代理服务器提供缓存的同时提供负载均衡功能。这里Web服务器仅在内部被反向代理访问,无需外部IP地址;而反向代理服务器则具有双网卡和内外两套IP地址;该方法作用于HTTP协议层面,也称为应用层负载均衡

  4.IP负载均衡:在网络层通过修改请求目标地址失效负载均衡,与3中一样,负载均衡服务器为中介。

  5.数据链路层负载均衡:在4的情形下,由Web服务器直接返回响应给客户端,通过在数据链路层修改mac地址实现此时机房中所有服务器IP地址一致,仅mac地址不同。该方式也称三角传输方式,大型网站中最为常用。

  6. 负载均衡算法

  负载均衡服务器的实现分为两步:首先根据负载均衡算法和Web服务器列表计算得到集群中一台Web服务器的地址;然后将请求数据发送到该地址对应的Web服务器上。对于后者,前面已经讲了5种方法。下面介绍下前者。负载均衡算法分类:1.轮询;2.加权轮询;3.随机;4.最少连接;5.原地址散列。

3.2 分布式缓存集群的伸缩性设计

  设计目标:在加入新的缓存服务器后,整个集群中原有的缓存数据尽可能还能被访问到。

  算法实现:使用分布式缓存的一致性Hash算法——使用一致性Hash环实现KEY到缓存服务器的Hash映射。这块可以直接点击超链接,不再累述。

3.3 数据存储服务器集群的伸缩性设计

  同样是数据存储,数据存储服务器集群相比缓存服务器对数据的持久性可用性有更高的要求。下面分别从关系数据库NoSQL数据库说明数据存储服务器集群的伸缩性设计。

3.3.1 关系数据库集群的伸缩性设计

  主要采用读写分离——主从模式,分库——业务分割,还有分片。这里以Cobar为例,这个给个超链接:阿里开源Mysql分布式中间件:Cobar

3.3.2 NoSQL数据库的伸缩性设计

  NoSQL:主要指非关系的、分布式的数据库设计模式;是关系数据库的补充而不是替代。NoSQL数据库产品一般都放弃了关系型数据库的两大重要基础——以关系代数为基础的结构化查询语句和事务一致性保证(ACID)。这里,使用最广泛的是HBaseHbase原理、基本概念、基本架构

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐