首页 > 其他分享 >大型网站架构技术

大型网站架构技术

时间:2023-10-15 12:56:07浏览次数:21  
标签:缓存 架构 网站 并发 大型 每秒 用户数

大型网站架构技术

大型网站特点

  1. 用户多,分布广泛
  2. 大流量、高并发
  3. 易受攻击
  4. 功能多、变更频繁
  5. 海量数据
  6. 从小到大、逐渐发展

架构目标

高性能:提供快速访问体验

高可用:网站服务一直正常访问

可伸缩:通过硬件增加/减少,提高/降低处理能力

可扩展:系统间耦合低,方便通过新增/移除方式,增加/减少新的功能模块

安全性:网站安全访问和数据加密,安全存储等策略

敏捷性:随需应变,快速相应

架构模式

  1. 分层:
  2. 分割:按业务/模块/功能特点进行划分
  3. 集群:负载均衡
  4. 缓存:将静态资源放在离用户最近的地方,业务数据放高性能数据库中
  5. 异步:
  6. 冗余:增加副本。提高可用性和性能(灾备
  7. 安全:敏感数据加密传输,脱敏、风控、反欺诈等
  8. 自动:将重复的、不需要人工参与的,通过工具自动完成
  9. 敏捷:

高性能架构

  • 以用户为中心,提供快速的访问体验。主要体现在:响应快
  • 以系统为中心,主要体现在:并发能力高性能稳定。
  1. 前端优化: 减少HTTP请求次数,使用浏览器缓存,JS压缩,CDN加速
  2. 应用服务层优化:使用多级缓存,异步,集群等
  3. 代码优化:合理的架构,多线程,资源复用(对象池),代码逻辑(循环查询数据库问题),cache等
  4. 存储优化:缓存。固态,读写分离,分布式存储(HDFS), NoSql等

高可用架构

大型网站在任何时候都应该可以正常访问,但是因为网站大型网站的复杂性,要保证高可用是非常困难的。行内一般用几个9表示可用性指标,比如99.99%

即不通用时间:0.01% * 365 *24 * 60 = 52.56 分钟 / 年

  1. 应用层:负载均衡、分级管理、快速失败、服务降级
  2. 数据库:主从复制、冷热备份、故障转移
  3. 中间件:集群部署、分片交叉备份等
  4. 外部环境:ups(不间断电源)、同城灾备、异地灾备

大型系统架构演进过程

  • 使用分布式文件系统
  • 使用NoSql和搜索引擎
    • 大数据(数据仓库
    • ElasticSearch、
    • mangoDB
  • 将应用服务器进行业务拆分
  • 消息队列
    • 解耦、削峰、异步
  • 多中心
    • 高可用

评估系统承载能力

  • 业务预估

评估维度

预计三年注册用户数:500万
注册用户数、日均UA、日均PV
峰值预估:平常量的2-3倍

业务评估

- 每天的UA(二八原则): 500万 * 0.2 = 100万
- PV量: 100万 * 30 = 3000 万 (按照每日每个用户点击浏览30次
- 一天集中访问量(二八原则) : 24*0.2=4.8小时  3000万*0.8 = 2400 万
- 每分钟的并发:4.8*60=288分钟, 2400万/288 = 8.33万
- 每秒并发量:8.33万/60 = 1388
- 峰值每秒并发数(三倍):1388*3 = 4164

系统要求

核心接口在并发用户数100(在线用户数的万分之一):
TPS:200/s ,QPS: 5000/s

- TPS :Transactions Per Second(每秒传输的事务处理个数),即服务器每秒处理的事务数
- QPS:Queries-per-second(每秒查询数

步骤

准备压测环境(和线上配置保持一致
通过jmeter压测工具进行测试
测试程度(一般是机器CPU到80%

结果

Samples: 采样数/请求数
Average:平均响应时间,单位毫秒
90%Line:90%的请求响应时间。单位毫秒
Min,Maximum:最小、大响应时间。单位毫秒
Error%: 响应错误率
Throughput: 每秒吞吐量

评估改进

优化系统,以提高更多的负载能力
计算出后台至少需要多少台服务器才能满足要求

标签:缓存,架构,网站,并发,大型,每秒,用户数
From: https://www.cnblogs.com/Right-A/p/17765521.html

相关文章

  • 9月大型语言模型研究论文总结
    大型语言模型(llm)在今年发展迅速,随着新一代模型不断地被开发,研究人员和工程师了解最新进展变得非常重要。本文总结9-10月期间发布了一些重要的LLM论文。这些论文涵盖了一系列语言模型的主题,从模型优化和缩放到推理、基准测试和增强性能。最后部分讨论了有关安全训练并确保其行为......
  • 【Django | 开发】面试招聘网站(增加csv,excel导出&企业域账号集成&日志管理功能)
    ......
  • 电商系统架构演进
    具体以电子商务网站为例,展示web应用的架构演变过程。1.0时代这个时候是一个web项目里包含了所有的模块,一个数据库里包含了所需要的所有表,这时候网站访问量增加时,首先遇到瓶颈的是应用服务器连接数,比如tomcat连接数不能无限增加,线程数上限受进程内存大小、CPU内核数等因素影响......
  • 软件开发架构
    软件开发架构网络编程:我们要编写一款基于网络传输的软件,你现在写的项目都不是基于网络的,比如ATM#举个案例:""" 我们现在以ATM为例,你现在写的ATM别人是不能够访问的,只能你自己用,但是,这不是目的,目的是我们要写一款ATM,然后让所有人都能够访问. 如果想让别人下载使用我们的软......
  • 【记录贴】使用项目管理软件管理大型复杂项目是种什么体验?(二)
    最近接手的一个中大型项目,前段时间才解决了需求管理的难题,在经历一个小长假后,又暴露出了一堆问题,那些节后再说的工作和节后再回复的邮件终于是避无可避了。。。给大家简述下我遇到的几个比较典型的问题,看看你们有遇到过吗?1.项目中各种突发的典型问题问题一:节后,由于核心团队成员临时......
  • ppt 网站
    1、优品PPT模板:http://www.ypppt.com2、吾道幻灯片:https://www.woodo.cn/home/3、创可贴:http://www.chuangkit.com4、OfficePlus:http://www.officeplus.cn5、51ppt模板:http://www.51pptmoban.com/ppt/......
  • 【网站公告】切换微信扫码登录所使用的服务号
    大家好,我们计划于10月14日(周六)上午切换微信扫码登录所使用的服务号,由“i博客园”切换到“博客园Cnblogs”,切换后首次微信扫码登录需要先关注新服务号,由此给您带来麻烦,请您谅解。也可以现在提前关注新服务号“博客园Cnblogs”,以下是新服务号的二维码:另外,欢迎您关注园子的微信公......
  • C#软件架构设计原则
    软件架构设计原则学习设计原则是学习设计模式的基础。在实际的开发过程中,并不是一定要求所有的代码都遵循设计原则,而是要综合考虑人力、成本、时间、质量,不刻意追求完美,要在适当的场景遵循设计原则。这体现的是一种平衡取舍,可以帮助我们设计出更加优雅的代码结构。分别用一句话......
  • 哪种网站适合物理服务器
    哪种网站适合物理服务器看到独立服务器这一词语,相信大家脑海立马就浮现出了它的种种优势,但是有优势就伴随着也有一定的弊端,比如说它的空间大、特殊的的组件配置,权限配置等,但是成本却非常的高,那么我们应该根据自己的需求去寻找适合自己的服务器类型,那么什么网站适合独立服务器呢?一......
  • 哪种网站适合物理服务器
    哪种网站适合物理服务器看到独立服务器这一词语,相信大家脑海立马就浮现出了它的种种优势,但是有优势就伴随着也有一定的弊端,比如说它的空间大、特殊的的组件配置,权限配置等,但是成本却非常的高,那么我们应该根据自己的需求去寻找适合自己的服务器类型,那么什么网站适合独立服务器呢?一......