大型网站系统架构演化

大型网站质量属性优先级:高性能 高可用 可维护 应变 安全

一、单体架构

        应用程序,数据库,文件等所有资源都在一台服务器上。

二、垂直架构

        应用和数据分离,使用三台服务器:应用服务器、文件服务器、数据服务器

        应用服务器:处理大量的业务逻辑,需要更快更强大的处理器

        数据服务器:需要快速磁盘检索和数据缓存,需要更快的磁盘和更大的内存

        文件服务器:存储用户上传的文件,需要更大容量的硬盘

三、使用缓存改善网站性能

        80%的业务访问集中在20%的数据上。将常用的数据进行缓存,可以减少数据库的访问压力,提高整个网站的数据访问速度,改善数据库的写入性能。

         缓存分为:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存。

        本地缓存访问速度快,但受应用服务器内存限制可以缓存的数据量有限,且存在和应用程序争内存的情况。

        远程缓存:可以使用集群,缓存的数据量不受限制

四、使用服务集群改善网站并发处理能力

        增加应用服务器的数量,分担访问和存储的压力,解决高并发和海量数据访问问题。通过负载均衡服务器,将用户请求分发到对应的应用服务器上。这种架构下, 负载均衡服务器的性能可能会称为系统性能的瓶颈。

 

五、数据库读写分离

六、使用反向代理技和CDN加速网站响应

七、使用分布式文件系统和分布式数据库

八、使用NoSQL和搜索引擎

九、业务拆分

十、分布式服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/811446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mongo 报错 Can‘t canonicalize query: BadValue $in needs an array

一、遇到的问题 Mongo in查询 [ UserId > array($in>$userIds)] $userIds数组不是连续索引,报错Cant canonicalize query: BadValue $in needs an array 二、解决 array_values($userIds) 重新索引一下变成连续索引即可。 Mongo in查询的数组要是连续索…

凡尔码搭建物流消防安全巡查系统

物流行业在现代经济中扮演着重要角色,由于物流过程涉及到大量的货物运输和存储,伴随着存在安全隐患、消防安全、设备设施安全等问题;安全问题也为物流企业管理者们需要高度关注的重要问题之一;近年来,随着消防安全管理…

华为校园公开课走入上海交大,鸿蒙成为专业核心课程

4月12日,华为校园公开课在中国上海交通大学成功举办,吸引了来自计算机等相关专业的150余名学生参加。据了解,由吴帆、陈贵海、过敏意、吴晨涛、刘生钟等教授在中国上海交通大学面向计算机系本科生开设的《操作系统》课程,是该系学…

揭秘大前端开发方向的新机遇!

众所周知,华为开发者大会2023,宣布不再兼容安卓,同时宣布了“鸿飞计划”,欲与iOS、安卓在市场三分天下,这对中国国产操作系统而言,具有划时代的意义。 鸿蒙应用开发的兴起&发展 鸿蒙操作系统是华为自…

如何androd动态注册编写计算器

源地址:https://www.ctvol.com/asreverse/41030.html 如何androd动态注册编写计算器 直接开上es开鲁,配置我们就不用多说了。 创建layout;在之后写debug时候回出现乱掉的情况,可以直接慢慢调试 在红圈中是layout基本设置&#…

细胞世界:1.内膜系统(物流网络)与跨膜运输(交通方式)

内膜系统就像一个高度组织化、效率卓越的现代化物流网络,各组成部分协同工作,确保细胞内外的物质转运和处理高效、准确进行。每个部分都承担着不同但相互关联的角色,通过这样的内部物流系统,细胞能够维持其生命活动,响…

网络广播系统是什么?网络广播的作用及应用

网络广播系统是什么?网络广播的作用及应用 商场广播的目的:提醒人员有序、监控配合点对点呼叫、物品遗失广播、背景音乐防噪、紧急情况呼叫等等,各个场景有各个场景的需求模式,广播系统的建设重点在于突发情况的应对,国家已经把广…

清明美食制作|“心灵护航,增能培力”残疾人职业能力提升培养

为提高残疾人的动手能力,提升个人的自身素质和自主就业创业能力,弘扬中华民族传统文化,临近清明之际,淳安县从益舍社会工作服务中心于浪川乡展开了以“品尝春天味道 制作清明粿 清明美食制作”为主题的清明节活动。 【清明粿制作】…

0点起C语言

用sizeof()来查看在你的平台上到底占用多少你多少字节的内存。 Int x sizeof(int); Int xsizeof(shrt int); Int xsizeof(long); Int xsizeof(long double); 等等。 http://www.enet.com.cn/article/2012/0822/A20120822153730_2.shtml #—是个预处理的标志,表示对文…

PCIe总线-存储器域和PCIe总线域访问流程(二)

1.概述 PCIe总线的最大特点是像CPU访问DDR一样,可以直接使用地址访问PCIe设备(桥),但不同的是DDR和CPU同属于存储器域,而CPU和PCIe设备属于两个不同的域,PCIe设备(桥)的地址空间属于…

【MATLAB第104期】基于MATLAB的xgboost的敏感性分析/特征值排序计算(针对多输入单输出回归预测模型)

【MATLAB第104期】基于MATLAB的xgboost的敏感性分析/特征值排序计算(针对多输入单输出回归预测模型) 因matlab的xgboost训练模型不含敏感性分析算法,本文通过使用single算法,即单特征因素对输出影响进行分析,得出不同…

【教学类-52-01】20240411动物数独(4宫格)宫格图

作品展示 背景需求: 一、下载图片 PS修图(图片长宽一样,把动物图片上下拉长) 二、数独结构分析: 1、这是一个四宫格的数独题, 2、将1234换成了四种小动物图片。 于是我去找到原来做过的一个代码&#xf…

秒杀优化-异步秒杀思路

6、秒杀优化 6.1 秒杀优化-异步秒杀思路 我们来回顾一下下单流程 当用户发起请求,此时会请求nginx,nginx会访问到tomcat,而tomcat中的程序,会进行串行操作,分成如下几个步骤 1、查询优惠卷 2、判断秒杀库存是否足…

【c语言】atoi函数---使用和模拟实现(详解)

atoi函数---使用和模拟实现 atoi函数在Cplusplus中的定义 atoi函数的使用 #include <stdio.h> #include <stdlib.h>int main() {char arr[20] "4831213";int ret 0;ret atoi(arr);printf("arr:%s\n", arr);printf("ret:%d\n", re…

openstack之neutron介绍

核心组件 neutron-server&#xff1a;提供API接口&#xff0c;把对应的api请求传给plugin进&#xff1b; neutron-plugin&#xff1a;管理逻辑网络状态&#xff0c;调用agent&#xff1b; neutron-agent&#xff1a;在provider network上创建网络对象&#xff1b; neutron-…

EaticSearch学习

ES学习目标 1、全文检索 2、ES介绍 2.1 安装&#xff08;docker&#xff09; docker pull elasticsearch:7.14.0 docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" elasticsearch:7.14.0初步检索 1、_cat GET /_cat/nodes&#xff1a;查看所…

【二分算法】

17. 二分查找&#xff08;easy&#xff09; 算法流程&#xff1a; 算法代码&#xff1a; int search(int* nums, int numsSize, int target) {// 初始化 left 与 right 指针int left 0, right numsSize - 1;// 由于两个指针相交时&#xff0c;当前元素还未判断&#xff0c;因…

idea项目编译时报错:GC overhead limit exceeded

问题描述 今天idea构建一个新的项目时报错&#xff1a;GC overhead limit exceeded&#xff0c;错误是发生在编译阶段&#xff0c;而不是运行阶段。 ava: GC overhead limit exceeded java.lang.OutOfMemoryError: GC overhead limit exceededat com.sun.tools.javac.resources…

OOCT WPF_D3D项目报错无法加载依赖项

运行示例项目报错缺少dll&#xff0c;发现运用了这个大老李&#xff0c;通过添加PATH路径也无法解决&#xff0c;看到debug文件夹下面没有其他的依赖项。 通过depneds工具可以看到 OCCTProxy_D3D.dll 缺少依赖项&#xff0c;图中的缺项都是OCCT生成的模块dll所以讲这些dll从..…

编程新手必看,python中循环语句学习(14)

介绍&#xff1a; Python3中的循环语句主要有两种&#xff1a;for循环和while循环。 for循环&#xff1a;用于遍历序列&#xff08;如列表、元组、字符串等&#xff09;中的元素&#xff0c;执行相应的代码块。在每次循环中&#xff0c;序列中的一个元素被赋值给一个变量&#…