专业 靠谱的软件外包伙伴

您的位置: 首页>>关于我们>>行业动态

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

2021-09-03 08:16:27

大型网站 特点 

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

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

海量数据 数据 需要 存储 管理 需要 大量 服务器 

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

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

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

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

大型网站 主要 技术 挑战

庞大 用户 高并发 访问 海量数据 

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

大型 网站架构 演化过程

初始 阶段 网站架构

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

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

应用 数据库 文件 分离

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

服务器 专用化】

应用服务器 处理 业务 要求 CPU 

文件服务器 存储 文件 要求 存储容量 

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

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

◆用缓存 改善 网站 性能

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

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

缓存 分为 两种 

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

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

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

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

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

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

数据库 读写分离

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

使用 NoSQL和搜索引擎

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

业务 拆分 分治 

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

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

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

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

分布式服务

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

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

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

     [ 返回首页] [ 打印] [ 返回上页]    上一篇:医疗科技行业:医疗IT行业有望迎来发展新增量    下一篇:广州互联网软件IT人年均薪酬超20万元,你达标了吗?