特征:应用程序、数据库、文件分别部署在独立的资源上 。
③使用缓存改善性能
文章插图
说明:系统访问特点遵循二八定律 , 即 80% 的业务访问集中在 20% 的数据上 。
缓存分为本地缓存和远程分布式缓存 , 本地缓存访问速度更快但缓存数据量有限 , 同时存在与应用程序争用内存的情况 。
特征:数据库中访问较集中的一小部分数据存储在缓存服务器中 , 减少数据库的访问次数 , 降低数据库的访问压力 。
③使用“应用服务器”集群
文章插图
说明:在做完分库分表这些工作后 , 数据库上的压力已经降到比较低了 , 又开始过着每天看着访问量暴增的幸福生活了 。
突然有一天 , 发现系统的访问又开始有变慢的趋势了 , 这个时候首先查看数据库 , 压力一切正常 。
之后查看 Web Server , 发现 Apache 阻塞了很多的请求 , 而应用服务器对每个请求也是比较快的 , 看来是请求数太高导致需要排队等待 , 响应速度变慢 。
特征:多台服务器通过负载均衡同时向外部提供服务 , 解决单台服务器处理能力和存储空间上限的问题 。
描述:使用集群是系统解决高并发、海量数据问题的常用手段 。通过向集群中追加资源 , 提升系统的并发处理能力 , 使得服务器的负载压力不再成为整个系统的瓶颈 。
④数据库读写分离
文章插图
说明:享受了一段时间的系统访问量高速增长的幸福后 , 发现系统又开始变慢了 , 这次又是什么状况呢?经过查找 , 发现数据库写入、更新的这些操作的部分数据库连接的资源竞争非常激烈 , 导致了系统变慢 。
特征:数据库引入主备部署 。
描述:把数据库划分为读库和写库 , 通过引入主从数据库服务 , 读和写操作在不同的数据库服务处理 。
读库可以有多个 , 通过同步机制把写库的数据同步到读库 , 对于需要查询最新写入数据场景 , 可以通过在缓存中多写一份 , 通过缓存获得最新数据 。
⑤反向代理和 CDN 加速
文章插图
特征:采用 CDN 和反向代理加快系统的访问速度 。
描述:为了应付复杂的网络环境和不同地区用户的访问 , 通过 CDN 和反向代理加快用户访问的速度 , 同时减轻后端服务器的负载压力 。CDN 与反向代理的基本原理都是缓存 。
⑥“分布式文件”系统 和 “分布式数据库”
文章插图
说明:随着系统的不断运行 , 数据量开始大幅度增长 , 这个时候发现分库后查询仍然会有些慢 , 于是按照分库的思想开始做分表的工作 。
特征:数据库采用分布式数据库 , 文件系统采用分布式文件系统 。
描述:任何强大的单一服务器都满足不了大型系统持续增长的业务需求 , 数据库读写分离随着业务的发展最终也将无法满足需求 , 需要使用分布式数据库及分布式文件系统来支撑 。
分布式数据库是系统数据库拆分的最后方法 , 只有在单表数据规模非常庞大的时候才使用 , 更常用的数据库拆分手段是业务分库 , 将不同的业务数据库部署在不同的物理服务器上 。
⑦使用 NoSQL 和搜索引擎
文章插图
特征:系统引入 NoSQL 数据库及搜索引擎 。
描述:随着业务越来越复杂 , 对数据存储和检索的需求也越来越复杂 , 系统需要采用一些非关系型数据库如 NoSQL 和分数据库查询技术如搜索引擎 。
应用服务器通过统一数据访问模块访问各种数据 , 减轻应用程序管理诸多数据源的麻烦 。
推荐阅读
- 阿里云ECS的CPU100%排查
- Web 存储技术
- 阿里云被植入挖矿木马事件
- 自动驾驶知识科普 自动驾驶汽车的七大核心技术
- 多肉养殖基地 佛珠锦多肉怎么养殖技术
- 带你了解阿里体系,阶层职位曝光
- 淘宝|突发!蒋凡卸任淘宝/天猫董事长 曾是阿里合伙人
- 基于隐私保护技术的DNS通信协议
- vivo的双Wi-Fi加速技术,到底是什么黑科技?
- 游戏|《艾尔登法环》第七结局是高技术力整活 台词来自律法时代废案