分布式技术架构介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二. 应用与数据分离
应用服务器 订单 应用服务器 用户 商品
数据库服务器 商品表 数据库 服务器
数据库
用户表
订单表
• 单机负载告警,将应用程序和数据分离 • 应用系统一台服务器,数据库和文件各一台服务器
三. 应用服务器集群化
负载均衡器 应用服务器 负载均衡器 订单 用户 商品 订单 应用服务器 用户 商品
七. 分布式的数据库
负载均衡器
应用服务器 应用服务器
订单
用户
商品
订单
用户
商品

读写分离


分布式缓存 集群
分库分表
水平分割,将相同的 业务不同的数据放到
不同的数据库中

用户库(主)
数据 复制
垂直分割,将不同的 业务数据放到不同的 数据库中
交易库(主)
数据 复制
商品库(主)
数据 复制
用户库(从)
交易库(从)
负载均衡器 负载均衡器
订单
用户 应用服务器
商品
应用 服务器
订单
用户
商品
订单 应用服务器
用户 应用服务器
商品 应用服务器
应用拆分前
应用拆分后
十. 服务化的架构
应 用 A 应 用 B 应 用 C 应 用 D 应 用 A 应 用 B 服务 数据 1 库 应 用 C 应 用 D 应 用 E 服务 分布式文 4 件系统 应 用 F 应 用 G 数据 库
价值、专业、分享、快乐
分布式技术架构介绍
目录 • • • • •
CONTENTS 网站架构的演变 分布式服务框架 分布式数据访问层 云计算服务 大数据
改变传统IT架构的束缚
网站架构的演变
一. 从一台单机的交易网站开始
文件
应用程序 数据库 应用服务器
• 应用程序、数据库、文件等都放在一台服务器上
用户表 订单表
主分布式数据库(写)
网络提供商 IDC机房
用户表
网站系统 IDC机房
订单表
从分布式数据库(读)
• •
大型网站站内搜索 提高站内搜索场景下读的性能,提供更好的查询效率
九. 业务应用拆分
• • • 读写分离、分布式存储、数据的垂直和水平拆分(分库分表)都是拆分数据,解决数据 方面的问题,应用如何拆分?? 随着业务发展,应用的功能越来越多,也越来越大,我们需要考虑不让应用持续变大; 应用拆分,把一个应用拆到多个应用中,分而治之;
• •
数据库 拆分阶段
• •
需要保证数据的一致性、实时性、事务性 业务逻辑划分的较清晰,结构化数据
五. 数据库读写分离
负载均衡器 应用服务器 订单 负载均衡器 用户 商品 订单 用户 应用服务器 商品
应用服 务器 数据库 分布式缓存 集群 商品表 用户表
数据复制
数据库
主从库 数据同步
商品表
用户表 订单表 从库(读)
用户库(主)
交易库(主)
商品库(主)
数据 复制
用户库(从)
数据 复制
交易库(从)
数据 复制
商品库(从)

管理数据访问连接
八. 使用NoSQL和搜索引擎
反向代理 服务器 集群
负载均衡器
应用服务器 应用服务器
订单
用户
商品
订单
用户
商品
CDN集群 分布式缓存 集群 搜索集群 数据库 商品表
数据复制
数据库
商品表

系统架构更加清晰,代码质量提高,利于升级和
维护,稳定性高

网站初期或者规模较小,整体上容易 把控

服务层利用分布式系统的架构实现HA的功能

适用大型网站系统的场景中
服务框架
应 用 A 应 用 B 应 用 C 应 用 D 应 用 E 应 用 F 应 用 G 应用1 (服务调用者) 应用2 (服务调用者) 服务框架
商品库(从)
分布式数据访问层
负载均衡器
应用层
订单 用户 商品 订单 用户 商品
通过集群提供一个高存储容量、高并发 访问、数据冗余容灾支持的数据库系统。
应用服务器
应用服务器
商品查询 服务

分主库/从库


分库/分表
访问路由策略
服务层
登录服务
订单服务

自动扩容,增加数据节
点(数据库或者文件服 务器)
分布式缓 存集群
负载均衡器
互联网
分布式 缓存集群
网站系统 IDC机房
主数据库 服务器
从数据库 服务器
• • •
网络提供商机房: 就是离用户最近的机房,用户宽带上网的接入机房; CDN:在离客户最近的机房中缓存业务数据,客户第一跳就能访问到数据; 反向代理:用户请求到网站系统所在的IDC后,首先访问反向代理里面的缓存的数据;
应用
应用
数据库
数据库
数据库 缓存阶段
应用服务器集群
集群阶段
数据库服务器集群
数 据 库
缓存
特点

应用 程序
问题
经历了应用和数据拆分和集群、缓存等阶段 千级强并发,万级弱并发(在线用户),十万级用户 大型企业ERP、供应链、大型企业HR、办公OA、核 心业务系统 • • • • • 中央集中式部署架构,小型机和FC共享存储场景较多, 水平扩展有瓶颈(应用和数据的扩展能力都很差) 有热备和故障恢复机制,但数据集中存储,安全风险高 大量的事务、锁检测导致数据库访问瓶颈 基础设施率用低,成本高 追求单节点的稳定性
订单表
分布式 缓存集群 从数据库 服务器 主数据库 服务器
主库(写)
• •
写库:需要写入数据库的事务操作 读库:缓存访问不命中、缓存过期、需要读取数据库的事务操作
六. 使用CDN和反向代理
CDN和反向代理基本原理还是缓存!!!
反向代理服 务器集群 网络提供商IDC机房 CDN集群
拨号接入 服务器 应用 服务器
缓存系 统
搜索引 擎
应用拆分
服务 缓存系 统2
服务 搜索引 3 擎
服务化的架构wk.baidu.com
• •
各应用中存在重复的业务功能和代码 甚至在一个应用中也会存在冗余的代 码逻辑

增加服务层,把冗余的代码和可以复用的业务应 用进行拆分提取,封装成服务

应用层可以更专注在与前端用户如何交互,业务 处理放在服务层来进行

应用系统很臃肿,维护和版本升级开 销都很大,稳定性不够理想
应用 服务器
应用 服务器 数据库 服务器 商品表 数据库 服务器
数据库 用户表 订单表
• •
单节点的应用服务器负载告警 使用应用服务器集群,提高网站的并发处理能力
四. 加入缓存 – 提高性能
负载均衡器 应用服务器 负载均衡器 应用 服务器 订单 用户 商品 订单 应用服务器 用户 商品
应用 服务器
数据库 服务器
商品表 缓存 数据库 服务器
数据库 用户表 订单表
分布式缓存集群
• •
二八定律:80%的业务集中访问20%的数据 把热点业务数据缓存在内存中,提高访问速度,改善DB写入性能
总结:企业级系统架构
反向代理
一台服务 器阶段 应用程序 和数据 应用 负载均衡 负载均衡 负载均衡 应用
应用
应用
相关文档
最新文档