百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

大型网站技术架构-入门梳理(建议收藏)

ccwgpt 2024-10-05 14:22 43 浏览 0 评论

前言

  • 本文是对《大型网站架构设计》(李智慧 著)一书的梳理,类似文字版的“思维导图”
  • 全文主要围绕“性能,可用性,伸缩性,扩展性,安全”这五个要素
  • 性能,可用性,伸缩性这几个要素基本都涉及到应用服务器,缓存服务器,存储服务器这几个方面

概述

  • 三个纬度:演化、模式、要素
  • 五个要素: 性能,可用性,伸缩性,扩展性,安全

演化历程

大型网站架构演化历程:

  1. 初始阶段的网站架构:一台服务器,上面同时拥有应用程序,数据库,文件,等所有资源。例如 LAMP 架构
  2. 应用和数据服务分离:三台服务器(硬件资源各不相同),分别是应用服务器,文件服务器和数据库服务器
  3. 使用缓存改善网站性能:分为两种,缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器的远程缓存
  4. 使用应用服务器集群改善网站并发处理能力:通过负载均衡调度服务器来将访问请求分发到应用服务器集群中的任何一台机器
  5. 数据库读写分离:数据库采用主从热备,应用服务器在写数据时访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库。应用服务器使用专门的数据访问模块从而对应用透明
  6. 使用反向代理和 CDN 加速网站响应:这两者基本原理都是缓存。反向代理部署在网站的中心机房,CDN 部署在网络提供商的机房
  7. 使用分布式文件系统和分布式数据库系统:数据库拆分的最后手段,更常用的是业务分库
  8. 使用 NoSQL 和搜索引擎:对可伸缩的分布式有更好的支持
  9. 业务拆分:将整个网站业务拆分成不同的应用,每个应用独立部署维护,应用之间通过超链接建立联系/消息队列进行数据分发/访问同一数据存储系统
  10. 分布式服务:公共业务提取出来独立部署

架构演化-分布式服务

演化的价值观

  • 大型网站架构的核心价值是随网站所需灵活应对
  • 驱动大型网站技术发展的主要力量是网站的业务发展

误区

  • 一味追随大公司的解决方案
  • 为了技术而技术
  • 企图用技术解决所有问题

架构模式

模式的关键在于模式的可重复性

  • 分层:横向切分
  • 分割:纵向切分
  • 分布式:分层和分割的主要目的是为了切分后的模块便于分布式部署。常用方案:分布式应用和服务分布式静态资源分布式数据和存储分布式计算分布式配置,分布式锁,分布式文件,等等
  • 集群:多台服务器部署相同的应用构成一个集群,通过负载均衡设备共同对外提供服务
  • 缓存:将数据放距离计算最近的位置加快处理速度,改善性能第一手段,可以加快访问速度,减小后端负载压力。使用缓存 两个前提条件 :1.数据访问热点不均衡;2.数据某时段内有效,不会很快过期CDN反向代理本地缓存分布式缓存
  • 异步:旨在系统解耦。异步架构是典型的消费者生产者模式,特性如下:提高系统可用性加快网站访问速度消除并发访问高峰
  • 冗余:实现高可用。数据库的冷备份和热备份
  • 自动化:包括发布过程自动化,自动化代码管理,自动化测试,自动化安全检测,自动化部署,自动化监控,自动化报警,自动化失效转移,自动化失效恢复,自动化降级,自动化分配资源
  • 安全:密码,手机校验码,加密,验证码,过滤,风险控制

核心要素

架构是“最高层次的规划,难以改变的规定”。主要关注五个要素:

  • 性能
  • 可用性(Availability)
  • 伸缩性(Scalability)
  • 扩展性(Extensibility)
  • 安全性

架构

下面依次对这五个要素进行归纳

高性能

性能的测试指标主要有:

  • 响应时间:指应用执行一个操作需要的时间
  • 并发数:指系统能够同时处理请求的数目
  • 吞吐量:指单位时间内系统处理的请求数量
  • 性能计数器:描述服务器或者操作系统性能的一些数据指标

性能测试方法:

  • 性能测试
  • 负载测试
  • 压力测试
  • 稳定性测试

性能测试曲线

性能优化,根据网站分层架构,可以分为三大类:

  • Web 前端性能优化浏览器访问优化减少 http 请求使用浏览器缓存启用压缩CSS 放在页面最上面,JavaScript 放在页面最下面减少 Cookie 传输CDN 加速:本质是一个缓存,一般缓存静态资源反向代理保护网站安全通过配置缓存功能加速 Web 请求实现负载均衡
  • 应用服务器性能优化:主要手段有 缓存、集群、异步分布式缓存(网站性能优化第一定律:优化考虑使用缓存优化性能)异步操作(消息队列,削峰作用)使用集群代码优化多线程(设计为无状态,使用局部对象,并发访问资源使用锁)资源复用(单例,对象池)数据结构垃圾回收
  • 存储服务器性能优化机械硬盘 vs. 固态硬盘B+ 树 vs. LSM 树RAID vs. HDFS

高可用

  • 高可用的网站架构:目的是保证服务器硬件故障时服务依然可用、数据依然保存并能够被访问,主要手段数据和服务的冗余备份及失效转移
  • 高可用的应用:显著特点是应用的无状态性通过负载均衡进行无状态服务的失效转移应用服务器集群的 Session 管理Session 复制Session 绑定利用 Cookie 记录 SessionSession 服务器
  • 高可用的服务:无状态的服务,可使用类似负载均衡的失效转移策略,此外还有如下策略分级管理超时设置异步调用服务降级幂等性设计
  • 高可用的数据:主要手段是数据备份和失效转移机制CAP 原理数据一致性(Consisitency)数据可用性(Availibility)分区耐受性(Partition Tolerance)数据备份冷备:缺点是不能保证数据最终一致和数据可用性热备:分为异步热备和同步热备失效转移:由以下三部分组成失效确认访问转移数据恢复
  • 高可用网站的软件质量保证网站发布自动化测试预发布验证代码控制主干开发、分支发布分支开发、主干发布自动化发布灰度发布
  • 网站运行监控监控数据采集用户行为日志采集(服务器端和客户端)服务器性能监控运行数据报告监控管理警报系统失效转移自动优雅降级

伸缩性

大型网站的“大型”是指:

  • 用户层面:大量用户及大量访问
  • 功能方面:功能庞杂,产品众多
  • 技术层面:网站需要部署大量的服务器

伸缩性的分为如下几个方面

  • 网站架构的伸缩性设计不同功能进行物理分离实现伸缩纵向分离(分层后分离)横向分离(业务分割后分离)单一功能通过集群规模实现伸缩
  • 应用服务器集群的伸缩性设计HTTP 重定向负载均衡DNS 域名解析负载均衡反向代理负载均衡(在 HTTP 协议层面,应用层负载均衡)IP 负载均衡(在内核进程完成数据分发)数据链路层负载均衡(数据链路层修改 mac 地址,三角传输模式,LVS)负载均衡算法轮询(Round Robin, RR)加权轮询(Weighted Round Robin, WRR)随机(Random)最少链接(Least Connections)源地址散列(Source Hashing)
  • 分布式缓存集群的伸缩性设计Memcached 分布式缓存集群的访问模型Memcached 客户端(包括 API,路由算法,服务器列表,通信模块)Memcached 服务器集群Memcached 分布式缓存集群的伸缩性挑战分布式缓存的一致性 Hash 算法(一致性 Hash 环,虚拟层)
  • 数据存储服务集群的伸缩性设计关系数据库集群的伸缩性设计NoSQL 数据库的伸缩性设计

可扩展

系统架构设计层面的“开闭原则”

  • 构建可扩展的网站架构
  • 利用分布式消息队列降低耦合性事件驱动架构(Event Driven Architecture)分布式消息队列
  • 利用分布式服务打造可复用的业务平台Web Service 与企业级分布式服务大型网站分布式服务的特点分布式服务框架设计(Thrift, Dubbo)
  • 可扩展的数据结构(如 ColumnFamily 设计)
  • 利用开放平台建设网站生态圈

安全

XSS 攻击和 SQL 注入攻击是构成网站应用攻击最主要的两种手段,此外还包括 CSRF,Session 劫持等手段。

  • 攻击与防御XSS 攻击:跨站点脚本攻击(Cross Site Script)反射型持久型XSS 防御手段消毒(即对某些 html 危险字符转义)HttpOnly注入攻击SQL 注入攻击OS 注入攻击注入防御避免被猜到数据库表结构信息消毒参数绑定CSRF 攻击:跨站点请求伪造(Cross Site Request Forgery)CSRF 防御:主要手段是识别请求者身份表单 Token验证码Referer Check其他攻击和漏洞Error CodeHTML 注释文件上传路径遍历Web 应用防火墙(ModSecurity)网站安全漏洞扫描
  • 信息加密技术及密钥安全管理单向散列加密:不同输入长度的信息通过散列计算得到固定长度的输出不可逆,非明文可加盐(salt)增加安全性输入的微小变化会导致输出完全不同对称加密:加密和解密使用同一个密钥非对称加密信息传输:公钥加密,私钥解密数字签名:私钥加密,公钥解密密钥安全管理:信息安全传输是靠密钥保证的,改善手段有:把密钥和算法放在一个独立的服务器上将加解密算法放在应用系统中,密钥放在独立服务器
  • 信息过滤与反垃圾文本匹配分类算法黑名单

总结

最后针对于上面的知识点我总结出了 “怎样学架构更有效” 做成了文档和架构视频资料免费分享给大家

希望能帮助到您提高自己的技术升职加薪,也节省大家在网上搜索资料的时间来学习,也可以关注我一下以后会有更多干货分享。

转发+关注私信回复【架构资料】领取技术资料【面试资料】



相关推荐

用Deepseek扩写土木工程毕业论文实操指南

用Deepseek扩写毕业论文实操指南一、前期准备整理现有论文初稿/提纲列清楚论文核心框架(背景、现状、意义、方法、数据、结论等)梳理好关键文献,明确核心技术路线二、Deepseek扩写核心思路...

985学霸亲授,DeepSeek也能绘6大科研图表,5分钟就出图

在实验数据处理中,高效可视化是每个科研人的必修课。传统绘图软件操作复杂、耗时费力,而智能工具DeepSeek的出现彻底改变了这一现状。本文将详解如何用DeepSeek一键生成六大科研常用图表,从思维导...

AI写论文刷屏?大学生正在丢掉的思考力

一、宿舍深夜:当论文变成"Ctrl+C+V"凌晨两点的大学宿舍,小王对着电脑屏幕叹气。本该三天前开始写的近代史论文,此刻还一片空白。他熟练打开某AI写作网站,输入"论五四运动的...

Grok在辅助论文写作上能不能既“聪明”又“可怕”?!

AcademicIdeas-学境思源AI初稿写作随着人工智能技术的飞速发展,论文写作这一学术任务正迎来新的助力。2025年2月18日,美国xAI公司推出了备受瞩目的Grok3模型,其创始人埃隆·...

大四论文沟通场景!音频转文字难题听脑AI来化解

大四学生都知道,写论文时和导师沟通修改意见,简直是“过关斩将”。电话、语音沟通完,想把导师说的修改方向、重点要求记下来,麻烦事儿可不少。手写记不全,用普通录音转文字工具,转完还得自己慢慢找重点,稍不注...

论文写作 | 技术路线图怎么画?(提供经典优秀模板参考)

技术路线图是一种图表或文字说明,用于描述研究目标、方法和实施计划。它展示了研究的整体框架和步骤,有助于读者理解研究的逻辑和进展。在课题及论文中,技术路线图是常见的一部分,甚至是一个类似心脏一样的中枢器...

25年信息系统项目管理师考试第2批论文题目写作建议思路框架

25年信息系统项目管理师考试第2批论文题目写作建议思路框架--马军老师

微信购物应尽快纳入法律框架(微信购物管辖)

符向军近日,甘肃省工商行政管理局发布《2016年上半年信息分析报告》。报告显示,微信网购纠纷迅猛增长,网络购物投诉呈上升趋势。投诉的主要问题有出售的商品质量不过关、消费者通过微信付款后对方不发货、购买...

泛珠三角区域网络媒体与腾讯微信签署《战略合作框架协议》

新海南客户端、南海网7月14日消息(记者任桐)7月14日上午,参加第四届泛珠三角区域合作网络媒体论坛的区域网络媒体负责人及嘉宾一行到腾讯微信总部座谈交流,并签署《战略合作框架协议》(以下简称《框架协...

离线使用、植入微信-看乐心Mambo手环如何打破框架

从2014年开始智能手环就成功进入人们的生活,至今已经演变出数据监测、信息推送、心率监测等诸多五花八门的功能,人们选择智能手环并不指望其能够改变身体健康情况,更多的是通过数据来正视自身运动情况和身体健...

微信私域电商运营策略与框架(微信私域怎么做)

...

华专网络:如何零基础制作一个网站出来?

#如何零基础制作一个网站出来?#你是不是觉得网站建设很复杂,觉得自己是小白,需求不明确、流程搞不懂、怕被外包公司坑……这些问题我都懂!今天华专网络就用大白话给你捋清楚建站的全流程,让你轻松get网站制...

WAIC2024丨明日上午9点,不见不散!共同探讨智能社会与全球治理框架

大咖云集,硕果闪耀WAIC2024世界人工智能大会智能社会论坛将于7月5日9:00-12:00与你相约直播间WAIC2024上海杨浦同济大学哔哩哔哩多平台同步直播探讨智能社会与全球治理框架WAIC...

约基奇:森林狼换来戈贝尔时大家都在嘲笑 他们的阵容框架很不错

直播吧5月4日讯西部季后赛半决赛,掘金将迎战森林狼,约基奇赛前接受采访。约基奇说道:“当蒂姆-康纳利(森林狼总经理、前掘金总经理&曾选中约基奇)做了那笔交易(换来戈贝尔)时,每个人都在嘲笑他...

视频号带货为什么一个流量都没有?顶级分析框架送给你

视频号带货为什么一个流量都没有?遇到问题,一定是步步来分析内容,视频号带货一个流量都没有,用另外一个意思来讲,就可以说是零播放。为什么视频号带货一个流量都没有?跟你说再多,都不如来个分析框架。1、是否...

取消回复欢迎 发表评论: