网站架构的伸缩性设计

回顾网站架构发展历程,网站架构发展史就是一部不断向网站添加服务器的历史,只要工程师能向网站的服务器集群中添加新的机器,

只要新添加的服务器能线性提高网站的整体服务处理能力,网站就无需为不断增长的用户和访问而焦虑。

一般来说网站的伸缩性设计可分为两类,一类是根据功能进行物理分离实现伸缩,一类是单一功能通过集群实现伸缩。

前者是不同的服务器部署不同的服务,提供不同的功能;后者是集群内的多台服务器部署相同的服务,提供相同的功能。

1.不同功能进行物理分离实现伸缩

网站发展早期——通过增加服务器提高网站处理能力时,新增服务器总是从现有服务器中分离出部分功能和服务。

每次分离都会有更多的服务器加入网站,使新增的服务器处理某种特定服务。

事实上,通过物理分离不同的网站功能,实现网站伸缩性的手段,不仅可以用在网站发展的早期,

而且可以在网站发展的任何阶段使用(将其细分),具体又可分为如下两种情况:

(1)纵向分离(分层后分离)

将业务处理流程上的不同部分分离部署,实现伸缩性。

(2)横向分离(业务分割后分离)

将不同的业务模块分离部署,实现系统伸缩性。

横向分离的颗粒度可以非常的小,甚至可以一个关键网页部署一个独立服务,

比如对于电商网站非常重要的产品详情页、商铺页面、搜索列表页面,每个页面都可以独立部署,专门维护。

2.单一功能通过集群规模实现伸缩

将不同功能分离部署可以实现一定程度的伸缩,但是随着网站访问量的逐步增加,

即使分离到最小颗粒度的独立部署,单一的服务器也不能满足业务规模的要求。

因此必须使用服务器集群,即将相同服务部署在多台服务器上构成一个集群整体对外提供服务。

以搜索服务器为例,如果一台服务器可以提供每秒1000次的请求服务,即QPS(Query Per Second)为1000。

那么如果网站高峰时每秒搜索访问量为10000,就需要部署10台服务器构成一个集群。

若以缓存服务器为例,如果每台服务器可缓存40GB数据,那么要缓存100GB的数据,就要部署3台服务器构成一个集群。

事实上,计算一个服务的集群规模,需要同时考虑其对可用性、性能的影响及关联服务集群的影响。

具体的说,集群伸缩性又可分为应用服务器集群伸缩性和数据库服务器集群伸缩性。

这两种集群对数据状态管理的不同,技术实现也有非常大的区别。

而数据服务器集群也可分为缓存数据服务器集群和存储数据服务器集群,这两种集群的伸缩性设计也不大相同。

原文地址:https://www.cnblogs.com/yangmingxianshen/p/8449180.html

时间: 2024-08-30 01:39:10

网站架构的伸缩性设计的相关文章

大型网站技术架构——网站架构的伸缩性设计

首先,所谓网站的伸缩性,指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力.在整个互联网行业的发展渐进演化中,最重要的技术就是服务器集群,通过不断地向集群中添加服务器来增强整个集群的处理能力. 一.网站架构的伸缩性设计 1.1 不同功能进行物理分离实现伸缩 (1)纵向分离:将业务处理流程上得不同部分分离部署,实现系统的伸缩性: (2)横向分离:将不同的业务模块分离部署,实现系统的伸缩性: 1.2 单一功通过集群规模实现伸缩 使用服务器集群,即将相同服务

大型网站的可伸缩性架构如何设计?

1. 网站架构的伸缩性设计 1.1. 不同功能进行物理分离实现伸缩 纵向分离(分层后分离):将业务处理流程上的不同部分分离部署,实现系统伸缩性. 横向分离(业务分割后分离):将不同的业务模块分离部署,实现系统伸缩性. 1.2. 单一功能通过集群规模实现伸缩 将不同功能分离部署可以实现一定程度的伸缩性,但是随着网站的访问量逐步增加,即使分离到最小粒度的独立部署,单一的服务器也不能满足业务规模的要求.因此必须使用服务器集群,即将相同服务部署在多态服务器上构成一个集群整体对外提供服务. 2. 应用服务

大型网站技术架构,6网站的伸缩性架构之分布式缓存集群的伸缩性设计

和所有服务器都部署相同应用的应用服务器集群不同,分布式缓存服务器集群中不同的服务器中缓存的数据各不相同,缓存访问请求不可以在缓存服务器集群中的任意一台处理,必须先找到缓存有需要数据的服务器,然后才能访问. 这个特点制约了分布式缓存集群的伸缩性设计,因为新上线的缓存服务器没有缓存任何数据,而已下线的缓存服务器还缓存这网站的许多热点数据. 必须让新上线的缓存服务器对整个分布式缓存集群影响最小,也就是说新加入的缓存服务器应使整个缓存服务器集群中已经缓存的数据尽可能还被访问到,这是分布式缓存集群伸缩性设

网站伸缩性架构--数据存储服务器集群的伸缩性设计

1.分布式缓存的伸缩性设计 1.1Memcached分布式缓存集群的访问模型 1.2分布式缓存的一致性Hash算法 2.数据库存储服务器集群的伸缩性设计 数据库存储服务器集群的伸缩性设计对数据的持久性和可用性提出了更高的要求.数据存储服务器必须保证数据的可靠存储,任何情况下都必须保证数据的可用性和正确性. 2.1关系数据库集群的伸缩性设计 除了数据库主从读写分离.不同业务数据表可以部署在不同的数据库集群上,俗称数据库分库.这种方式的限制条件是跨库的表不能Join操作. 2.2NoSQL数据库的伸

优酷、YouTube、Twitter及JustinTV视频网站架构设计

优酷视频网站架构 一.网站基本数据概览 据2010年统计,优酷网日均独立访问人数(uv)达到了8900万,日均访问量(pv)更是达到了17亿,优酷凭借这一数据成为google榜单中国内视频网站排名最高的厂商.     硬件方面,优酷网引进的戴尔服务器主要以 PowerEdge 1950与PowerEdge 860为主,存储阵列以戴尔MD1000为主,2007的数据表明,优酷网已有1000多台服务器遍布在全国各大省市,现在应该更多了吧. 二.网站前端框架 从一开始,优酷网就自建了一套CMS来解决前

高并发高流量的网站架构设计 (转)

Web2.0的兴起,掀起了互联网新一轮的网络创业大潮.以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们.但Web2.0以用户为导向的理念,使得新生的网站有了新的特点——高并发,高流量,数据量大,逻辑复杂等,对网站建设也提出了新的要求. 本文围绕高并发高流量的网站架构设计问题,主要研究讨论了以下内容: 首先在整个网络的高度讨论了使用镜像网站,CDN内容分发网络等技术对负载均衡带来的便利及各自的优缺点比较.然后在局域网层次对第四层交换技

网站架构伸缩性概论

所谓网站的伸缩性是指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力. 大型网站的"大型",在用户层面可以理解为大量用户及大量访问,如Facebook有超过10亿用户: 在功能方面可以理解为功能庞杂.产品众多,如腾讯有超过1600种产品: 在技术方面可以理解为网站需要部署大量的服务器,如Google有近100万台服务器. 大型网站不是一开始就是大型网站的,而是从小型网站逐步演化而来,Google诞生的时候也只有一台服务器. 设计一个大型网站和

Web网站架构设计考虑的因素

转自http://blog.csdn.net/moshengtan/article/details/8990052 1    Web负载均衡 1.1 - 使用商业硬件实现 最常用的F5 与citrix netscaler.比如12306前端的web好像用的就是F5 的BIGIP.如果公司资金足够的话,相对使用开源软件来说理方便. 优点:维护方便,性能稳定 缺点:费用太高 1.2 - 使用开源软件 可选择使用lvs或者nginx做web应用的负载均衡. Lvs工作在tcp 协议4层下,而nginx

高性能网站架构设计之缓存篇(3)- Redis的配置

我们说Redis是一个强大的Key-Value存储系统,在前面我们已遇到了两个问题: 1.redis server 启动后,独占进程,能不能修改为后台服务呢? 2.redis server 服务是单线程的,而我的机器是多核的,能不能在同一台机器上开启多个实例更充分的利用 cpu 资源呢?但6379端口已经被前一个实例绑定,肯定会有冲突,那能不能修改默认端口呢? 答案是肯定的,redis 提供了灵活的配置方式,一种可以通过配置文件来配置,另一种你可以在运行时通过 config set 命令来修改配