资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

所有IT架构师必须先知道的知识:什么样的网站才算是大型网站?

来源:公司资讯 | 2021.09.03

◆大型网站 的特点 :

高并发 、大流量:需要 面对 高并发 用户 ,大流量访问 。

高可用 :需要 7x24 小时 不间断 服务 。

海量数据 :数据 需要 存储 、管理 ,需要 大量 服务器 。

用户 分步 广泛 、网络 情况 复杂 :全球 网络 复杂 ,像国内 还有 各个 运营商网络互通 难的问题 。

安全 环境恶劣 :互联网 开放性 ,使得 网站 易受到 攻击 。

需求 快速 变更 ,发布 频繁 :快速迭代。

渐进式 发展 :从小 网站 开始 ,逐渐 发展 成大 站点 。

◆大型网站 的主要 技术 挑战

庞大 的用户 ,高并发 的访问 和海量数据 。 

任何 简单 业务 在处理 PB级数据 或数以亿计的用户 时,问题 就会 变得 棘手 。

◆大型 网站架构 的演化过程

◆初始 阶段 的网站架构

大多数 小项目 的初期 架构 都是 这样 。 

随着 网站 业务发展 ,1台服务器 无法 满足需求:用户 越来越多 ,网站 性能 越来越 差,越来越多 的数据 导致 存储空间 不足 。

◆应用 、数据库 、文件 分离

应用服务 与数据服务 分离 :提高 性能 ,解决 存储 问题 。 

【服务器 专用化】

应用服务器 :处理 业务 ,要求 CPU 强

文件服务器 :存储 文件 ,要求 存储容量 大

数据库 服务器 :存储 数据 、缓存 、磁盘 检索 ,要求 内存 、硬盘速度快

随着 用户量 增多 ,数据库 压力大 ,会成为 系统 瓶颈 。

◆用缓存 改善 网站 性能

二八定律 :80 %的业务 访问 20 %的数据 。 

所以 常用 数据 放入 缓存 ,可以 减少 数据库 的压力 。

缓存 分为 两种 :

本地 缓存 :访问 更快,但受应用服务器 内存 限制 ,且会出现 和应用程序 争用内存 的情况 。

分布式缓存:集群 方式 ,专用 服务器 作为 缓存服务器 ,理论上不受 内存容量 限制 。

目前 只有 单个 应用服务器 ,且只部署 了一个 实例 ,其能够 处理 的连接数 有限 ,在网站访问 高峰期 时,应用服务器 会变成 瓶颈 。

◆使用 应用 集群 改善 网站 的并发 能力

一台 服务器 的处理 能力不足时,不要 考虑 去换更强大 的服务器 ,对于 大型网站 而言 ,不管 多么 强大 的服务器 ,都满足 不了 网站 持续增长 的业务 需求 。 

最好 的方式 是添加 更多 的服务器 来分担 原有 服务器 的访问 。

◆数据库 读写分离

数据库 还存在 的的问题 :使用 缓存 后,依然 会有 部分 读操作 (缓存 没有 命中 ,缓存 过期 等)和所有 的写操作 需要 访问 数据库 。 

在网站 用户 达到 一定 规模 后,数据库 依然 会因为 负载 较高成为 系统 瓶颈 。

解决办法 :采用 数据库 读写分离,两台 数据库 配置 主从关系 ,从主库 写数据 ,从从 库读数据 ,主库 的数据 会同步 到从库中。

为了 便于 应用程序 能够 透明 地访问 读写分离的数据库 ,所以 在应用程序 中使用 专门 的数据 访问 模块 。

◆使用 反向代理 缓存 和CDN 加速 网站 响应 :网络环境 复杂 ,缓存 前端 静态 资源

请求 访问 存在的问题 :随着 网站 持续 的发展 ,发现 不同 网络环境 的用户 访问速度 不同 。

解决办法 :使用 反向代理 缓存 和CDN 加速 网站 响应 。

CDN 和反向代理 的基本原理 :都是 缓存 ,区别 在于 CDN 部署 在网络 提供商 的机房 ,使用户 在请求 网站服务 时,可以 从距离 自己 最近 的网络 提供商 机房 获取数据 ;而反向代理 则部署 在网站 的中心 机房 中,从用户 请求 达到 中心 机房 后,首先 访问 的服务器 是反向代理 服务器 ,如果 反向代理 服务器 中缓存 着用户 请求 的资源 ,就将其直接 返回 给用户 。

CDN 和反向代理 的目的 :尽早 返回 数据 给用户 ,一方面 加快 用户 访问速度 ,另一方面 减轻 应用服务器 的负载 压力 。

◆使用 分布式文件系统 和分布式 数据库系统

随着 网站 业务发展 ,原有 读写分离的数据库 也不能 支撑 。 

另外 ,原有 的文件服务器 也无法 满足需求了。

这时 ,需要 使用 分布式 数据库 和分布式文件系统 。

分布式 数据库 是网站 数据库 拆分 的最后 手段 ,只有 在单表 数据 规模 非常 庞大 时才使用 。

网站 更常用 的数据库 拆分 手段 是业务 分库 ,将不同 的业务 数据 部署 在不同 的物理服务器上。

◆使用 NoSQL和搜索引擎

随着 业务 越来越 复杂 ,对数据存储 和检索 的需求 也越来越 复杂 ,网站 需要 采用 NoSQL和非数据库查询 技术 比如 搜索引擎 。

◆业务 拆分 (分治 )

网站 过于 复杂 ,将业务 拆分 。 

比如 商城 拆分为 首页 、店铺 、订单 、买家 、卖家 等产品线 ,归不同 的业务 团队 负责 。 

具体 到技术 ,也会根据 产品线 划分 ,将一个网站 拆分为 多个 应用 ,每个 应用 独立 部署 维护 。

应用 之间 可以 通过 一个 超链接 建立 关系 (在首页 的导航 链接 指向 不同 的应用 地址 ),也可以 通过 消息队列 进行 数据 分发 ,当然 最多 的还是 通过 访问 同一个 数据 存储系统 来构成 一个 关联 的完整 系统 。

◆分布式服务

业务 拆分 越来越 小,存储系统 越来越大,应用系统 整体 复杂度 呈指数型增加 ,部署 维护 越来越 困难 。 

由于 所有 应用 都需要 连接数据库 ,在数万 台服务器 的情况 下,数据库连接 会资源 不足 。

既然 每个 应用系统 都需要 相同 的业务 操作 ,比如 用户管理 、商品管理 等,可以 把这些 共用 业务 抽取 出来 ,独立 部署 。

—— 灵通云微信公众号 ——

热门标签

上一条———————

暂无数据

下一条———————

十七年 建站经验

多一份参考,总有益处

联系灵通云,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-688-6062 / 大客户专线   南通:15818561755