大型网站架构演化

这两天在泰国度假,有需要代购的小伙伴可以联系我本人。由于网络的问题,这两天我会发一下架构方面的知识,谢谢大家的支持。

说道网站,就的先说网站的特点:高并发,大流量,高可用,海量数据等。下面就说说网站的架构演化过程吧。

1、初始阶段的网站架构

初始阶段都比较简单,通常一台服务器就可以搞定一个网站了,看图。

2、应用服务和数据服务分离

随着网站业务的发展,一台服务器逐渐不能满足需求;这时候就需要将应用和数据分离,如图。

3、使用缓存改善网站性能

毫无疑问,现在的网站基本上都会使用缓存,即:80%的业务访问都会集中在20%的数据上。

4、使用应用服务器集群改善网站的并发处理能力

因为单一应用服务器能够处理的请求连接有限,在网站访问高峰时期,应用服务器会成为整个网站的瓶颈。因此使用负载均衡处理器势在必然。通过负载均衡调度服务器,可将来自浏览器的访问请求分发到应用的集群中的任何一台服务器上。

5、数据库读写分离

当用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。而目前主流的数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库的数据更新同步到另一台服务器上。网站利用数据库这一功能实现数据库读写分离,从而改善数据库负载压力。

6、使用反向代理和CDN加上网站相应

提高网站的访问速度,主要手段有使用CDN和反向代理。CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,而反向代理是部署在网站的中心机房,当用户请求到达中心机房后,首先访问的反向代理,如果反向代理缓存着用户请求的资源,则直接返回给用户。

7、使用分布式文件系统和分布式数据库系统任何强大的单一服务器都满足不了大型网站持续增长的业务需求。

分布式数据库是将网站数据库拆分的最后手段,只用在单表数据规模非常大的时候才使用。不到不得已时,网站更常用的数据库拆分手段是业务拆分,将不同业务的数据部署在不同的物理服务器上。

8、使用NoSQL和搜索引擎

搜素引擎也基本已经形成现在大型网站必须提供的功能了,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。

9、业务拆分

大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将网站业务拆分成不同的产品线。

具体到技术上,也会根据产品线花费,将一个网站拆分成许多不同的应用,每个应用独立部署维护。应用之间可以通过超链接建立管理,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。

10、分布式服务

由于每一个应用系统都需要执行许多相同的业务操作,比如用户管理,session管理,那么可以将这些公用的业务提取出来,独立部署。

关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。

本文分享自微信公众号 - 运维猫(centos15)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大道七哥

Hbase(一)了解Hbase与Phoenix

  HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”...

20420
来自专栏运维之美

揭秘:微信 / 微博 / 头条 / 快手是如何轻松处理亿级规模的 Feed 流的?

差不多十年前,随着功能机的淘汰和智能机的普及,互联网开始进入移动互联网时代,最具代表性的产品就是微博、微信,以及后来的今日头条、快手等。这些移动互联网时代的新产...

7010
来自专栏腾讯云数据库(TencentDB)

腾讯云数据库智能管家 DBbrain介绍

TencentDB for DBbrain(以下简称DBbrain)中文名数据库智能管家,是一款智能诊断和优化数据库的产品,为用户提供实时的数据库防护,在出现故...

1.9K120
来自专栏姚红专栏

超全的数据库分类介绍

数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。

17640
来自专栏技术探究-前端、Python、爬虫、数据分析、工具

爬虫面试题 | 系统设计 —— 如何设计一个网页爬虫

来源:https://juejin.im/post/598d1d3e51882548924134c2

16220
来自专栏品茗IT

Web基础配置篇(四): Mysql的配置及使用

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management...

8120
来自专栏宜信技术实践

MyCat数据库的基础配置及使用

随着计算机和信息技术的迅猛发展,行业应用系统的规模迅速扩大,行业应用所产生的数据量呈爆炸式增长,动辄达到数百TB甚至数百PB的规模,已远远超出传统计算技术和信息...

1.3K30
来自专栏品茗IT

Web基础配置篇(四): Mysql的配置及使用

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management...

6020
来自专栏逸繁

MySQL常见问题

mysql数据库做分页用limit关键字,它后面跟两个参数startIndex和pageSize

14220
来自专栏小程序·云开发专栏

云开发数据库VS传统数据库丨云开发101

在小程序·云开发中,最核心的便是三大组件:数据库、云存储和云函数,从今天开始,我们将开始隔日更的专栏文章,云开发101,在第一周,我们将从最最核心的数据库开始说...

16530

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励