[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
Web开发
> 详细
[架构] 大型网站技术架构 Part.1
时间:
2020-03-29 19:07:54
阅读:
57
评论:
0
收藏:
0
[点我收藏+]
演化历程
初始阶段
一台服务器
Lamp
用户增多导致访问性能变差,存储空间不足
应用服务和数据服务分离
三台服务器
应用服务器处理业务逻辑,需要更快的CPU
数据服务器需要快速磁盘检索和数据缓存,需要更快的硬盘和更大的内存
文件服务器需要存储用户上传的文件,需要更大的硬盘
用户增多导致数据库压力太大,访问延迟
使用缓存改善性能
80%的业务访问集中在20%的数据上
把常用数据缓存在内存中,减少数据库的访问压力
应用服务器本地缓存
分布式缓存
使用应用服务器集群改善网站并发处理能力
增加服务器分担原有服务器的访问及存储压力
负载均衡调度服务器将用户访问请求分发到应用服务器集群中的某一台
数据库读写分离
应用服务器写数据时访问主数据库
主数据库通过主从复制将数据更新同步到从数据库
应用服务器通过从数据库读数据
使用反向代理和CDN加速网站响应
不同地区用户访问网站时速度差异太大,为留住用户要加速网站响应
反向代理和CDN的原理都是缓存
CDN部署在网络提供商的机房,用户可从距离自己最近的网络提供商机房获取数据
反向代理部署在网站中心机房,请求到达中心机房后先访问反向代理服务器
使用分布式文件系统和分布式数据库系统
使用NoSQL和搜索引擎
提高数据检索效率
业务拆分
将一个网站拆分成多个不同应用(首页、商铺、订单、买家、卖家)
每个应用独立部署维护
应用间通过超链接建立关系,或通过消息队列进行数据分发
分布式服务
每个应用系统需要执行许多相同的业务操作
将共同的业务提取出来,独立部署
应用系统只管理用户界面
云计算
为其他网站提供架构服务
计算、存储、网络都可按需购买,线性伸缩
架构模式
分层
将系统在横向维度上切分成几个部分,每个部分负责单一职责
应用层,服务层,数据层
通过上下层的依赖和调用组成系统
合理规划层次边界和接口
分层是逻辑上的,物理上可灵活处理
分割
对软件的纵向切分
在应用层,将购物、论坛、搜索、广告分割成不同应用
由独立团队负责,部署在不同服务器上
将不同模块部署在不同服务器上
分布式
用更多的计算机完成同样的功能
处理更大的并发量,为更多用户提供服务
常用方案
分布式应用和服务
分布式静态资源:动静分离
分布式数据和存储:NoSQL
分布式计算:Hadoop
集群
多台服务器部署相同的应用,通过负载均衡设备共同对外提供服务
可提供更好的并发性能
提高系统可用性
缓存
将数据库放在离计算最近的位置以加快处理速度
减轻后端应用和数据存储的负载压力
前提
数据访问热点不均衡,某些数据会被更频繁地访问
数据在某个时间段内有效,不会很快过期
常用方案
CDN
反向代理
本地缓存
分布式缓存
异步
单一服务器内部通过多线程共享内存队列实现
分布式多个服务器集群通过分布式消息队列实现
生产者消费者模式
特性
提高系统可用性
加快网站响应速度
消除并发访问高峰
冗余
自动化
安全
架构要素
性能
优化手段
浏览器缓存/页面压缩/页面布局/减少Cookie传输
CDN
服务器本地缓存和分布式缓存
异步操作将请求发送至消息队列等待后续任务处理,当前请求直接返回响应给用户
集群
多线程,内存管理
索引、缓存、SQL优化、NoSQL
衡量指标
响应时间
吞吐量
系统性能计数器等
测试方法
性能测试
负载测试
压力测试
稳定性测试
可用性
99.99%时间可用,4个9,一年53分钟
通过负载均衡进行无状态服务的失效转移
应用服务器集群的Session管理
Session复制:需占用系统资源,用户太多时不适用
Session绑定:将Session绑定在某台特定服务器,不符合高可用要求
Cookie记录Session:记录信息有限,简单易用,可用性高
Session服务器
CAP原理
数据一致性:所有应用程序都能访问得到相同的数据
数据可用性:任何时候,任何应用程序都可读写访问
数据持久性:将数据备份,保证数据不丢失
伸缩性
通过增加资源的方式增强计算处理事务的能力
如向网站添加新的服务器
网站架构
不同功能进行物理分离
单一功能使用集群
应用服务器集群
HTTP重定向负载均衡
DNS域名解析负载均衡
反向代理负载均衡
IP负载均衡
数据链路层负载均衡
分布式缓存集群
数据存储服务器集群
关系型数据库
NoSQL数据库
扩展性
对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力
系统架构设计层面的开闭原则
将一个大系统切分成N个低耦合的子模块的能力
利用分布式消息队列降低系统耦合
利用分布式服务打造可复用的业务平台
安全性
网站攻防
XSS攻击:跨站点脚本攻击
注入攻击
DSRF攻击:跨站点请求伪造
信息加密
单向散列:MD5,、SHA
对称加密:DES、RC
非对称加密:RSA、HTTPS
[架构] 大型网站技术架构 Part.1
原文:https://www.cnblogs.com/cxc1357/p/12591442.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!