高并发场景系统设计的时候应该怎么考虑?

主要考虑三个方面,一个是架构,一个是容量,还有一个是调优。

架构方面要考虑的主要是架构拆分、加速和增加吞吐量技术。

架构拆分的常用技术比如:DDD四层架构、六边形架构、微内核架构,还有像k8s架构那种基于角色的拆分;还有异步化,基于事件驱动来分阶段处理;查询分等级,实时走数据库,列表等大查询走ES等搜索引擎;读写分离。

267a8c10150ecc66de48d4cf827558af.png

加速和增加吞吐量技术常用的比如:CDN、缓存、负载均衡、合理进行业务编排并行执行,还可以考虑使用webflux等响应式编程框架。

3ff8c3157607c31890bf7d731feb54cc.png

业务容量需要做到可衡量、可观测、可应对。容量包含数据量和并发量两方面。数据量方面比如数据库容量,我之前的项目,数据库容量的对应措施是使用日表、月表这样方便定期删除归档的手段,让数据库表的容量在一定数量级范围内维持稳定的容量水位。这也是一种冷热分离的手段,减轻当前热数据的存储量,提高性能。

容量设计要考虑两方面:一方面是容量伸缩,另一方面是容量防御。

容量伸缩主要遵循AKF扩展立方。X轴水平扩容,Y轴垂直领域拆分扩容,Z轴按一定的算法规则扩容。

b22009c119c5dcd12d9fdeb3a3aefb1f.png

容量防御方面的手段比如:隔离、混部、流控、熔断和降级。一旦出现问题,先让系统柔性地提供服务,争取一个扩容的时间。

调优技术比如:JVM调优减少GC停顿,无垃圾化减少GC,梳理业务优化模型。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nmealib 库移植 - -编译报错不完全类型 error: field ‘st_atim’ has incomplete type

一、报错提示-不完全类型(has incomplete type) Compiling obj/main.o from main.c.. arm-linux-gcc -g -w -stdgnu99 -DLINUX -I./ -Inmealib/inc/ -c -o obj/main.o main.c In file included from /home/user/Desktop/nuc980-sdk/sdk/arm_linux_4.8/usr/include/sys/stat…

数据仓库(2)-认识数仓

1、数据仓库是什么 数据仓库 ,由数据仓库之父比尔恩门(Bill Inmon)于1990年提出,主要功能仍是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料,透过数据仓库理论所特有的资料储存架构,做…

高性能RPC框架解密

专栏集锦,大佬们可以收藏以备不时之需: Spring Cloud 专栏:http://t.csdnimg.cn/WDmJ9 Python 专栏:http://t.csdnimg.cn/hMwPR Redis 专栏:http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏:http://t.csdni…

优雅草蜻蜓API大数据服务中心v1.0.4更新-加入蓝奏云直链解析·每日Bing·字数统计·今日油价·历史上的今天等接口

2024年1月13日优雅草蜻蜓API大数据服务中心v1.0.4更新-加入蓝奏云直链解析每日Bing字数统计今日油价历史上的今天等接口 优雅草api服务-大数据中心自12月29日推出以来截止2024年1月13日累计被调用次数为413次,共收录23个接口,截止前一日2024年1月12日当…

VMware workstation安装debian-12.1.0虚拟机(最小化安装)并配置网络

VMware workstation安装debian-12.1.0虚拟机(最小化安装)并配置网络 Debian 是一个完全自由的操作系统!Debian 有一个由普罗大众组成的社区!该文档适用于在VMware workstation平台安装最小化安装debian-12.1.0虚拟机。 1.安装准…

【动态规划】【矩阵快速幂】【滚动向量】C++算法552. 学生出勤记录 II

作者推荐 【动态规划】458:可怜的小猪 本题其它解法 【矩阵快速幂】封装类及测试用例及样例 预计2024年1月15(周一7:00)发布 涉及知识点 动态规划 矩阵快速幂 滚动向量 LeetCode552. 学生出勤记录 II 可以用字符串表示一个学生的出勤记录&#xf…

大创项目推荐 深度学习疲劳检测 驾驶行为检测 - python opencv cnn

文章目录 0 前言1 课题背景2 相关技术2.1 Dlib人脸识别库2.2 疲劳检测算法2.3 YOLOV5算法 3 效果展示3.1 眨眼3.2 打哈欠3.3 使用手机检测3.4 抽烟检测3.5 喝水检测 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习加…

1.2MATLAB数据类型和常用函数

MATLAB数据类型 数据类型表示范围整型 无符号整数8位无符号整数00000000~11111111 (0~-1)16位无符号整数32位无符号整数64位无符号整数带符号整数8位带符号整数10000000~01111111 (~)最左边的1表示符号负号16位带符号整数32位带符号整数64位带符号整数浮…

在centos系统安装mqtt

在CentOS系统上安装MQTT,通常意味着要安装一个MQTT代理(broker),比如Mosquitto。下面是在CentOS上安装Mosquitto的步骤: 添加EPEL仓库: 由于Mosquitto可能不在CentOS默认的Yum仓库中,你可能需要…

Vulnhub-Lampiao

一、信息收集 nmap扫描 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.7 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 1024 46:b1:99:60:7d:81:69:3c:ae:1f:c7:ff:c3:66:e3:10 (DSA) | 2048 f3:e8:88:f2:2d:d0:b2:54:0b:…

Center审计策略表安装和策略添加(事务)——(Linux/Windows版本)

本博客主要讲述Center的审计策略表安装和策略添加 使用事务添加 1、开启事务 my->StartTransaction(); 2、编写sql语句 //清除原来数据,防止数据污染my->Query("DROP TABLE IF EXISTS t_strategy");string sql "CREATE TABLE t_strategy (…

OpenCV-24双边滤波

一、概念 双边滤波对于图像的边缘信息能够更好的保存。其原理为一个与空间距离相关的高斯函数与一个灰度距离相关的高斯函数相乘。 空间距离:指的是当前点与中心点的欧式距离。空间域的高斯函数及其数学形式为: 其中(xi,yi&…

电子学会C/C++编程等级考试2021年09月(四级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:最佳路径 如下所示的由正整数数字构成的三角形: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,和最大的路径称为最佳路径。你的任务就是求出最佳路径…

C程序训练:与输入有关的错误

在录入程序时有时稍不注意就可能录入错误的字符导致程序运行结果出现错误&#xff0c;下面举例说明。 下面程序的运行结果是错的&#xff0c;但程序又没有错&#xff0c;到底问题出现在哪呢&#xff1f; #include <stdio.h> int main() {FILE *fp;int i, k, n;fpfopen(…

【Linux】Linux 系统编程——cd 命令

文章目录 1.命令概述2.命令格式3.常用选项4.相关描述5.参考示例 1.命令概述 “cd 命令&#xff0c;即 ‘change directory’ 的缩写&#xff0c;主要用于 Unix、Linux 和 macOS 等操作系统中&#xff0c;用于改变当前工作目录。该命令支持绝对路径和相对路径两种形式。若未指定…

肉类加工过程中的分子营养变化

谷禾健康 由于肉类和肉制品含有丰富的脂质和蛋白质&#xff0c;因此易于发生氧化反应。脂质氧化会产生一系列氧化衍生物&#xff0c;主要影响食物的颜色和风味&#xff0c;同时也会导致肌肉蛋白质的功能和稳定性丧失。同样&#xff0c;蛋白质容易被活性氧化物质(ROS)和氧化应激…

用ChatGPT写论文的重要指令

使用ChatGPT写论文&#xff0c;chatgpt3.5的普通版本与ChatGPTPLUS版本我都尝试过&#xff0c;这里我还是比较喜欢ChatGPTPLUS来写论文 快速订阅ChatGPTPLUS方法&#xff0c;0年费、0月费 具体步骤可参考 亲测&#xff0c;Chatgpt4.0充值&#xff08;虚拟卡充值&#xff09;-…

[Kubernetes]8. K8s使用Helm部署mysql集群(主从数据库集群)

上一节讲解了K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群),这里来看看K8s使用Helm部署mysql集群(主从数据库集群) 一.Helm 搭建mysql集群 1.安装mysql不使用persistence(无本地存储) 无本地存储:当重启的时候,数据库消失 (1).打开官网的应用中心 打开应用中…

PyTorch损失函数

一、损失函数是什么 损失函数&#xff1a;衡量模型输出与真实标签的差异 class _Loss(Module):def __init__(self, size_averageNone, reduceNone, reductionmean):"""Loss函数的基类&#xff0c;定义了一些通用的属性和方法。参数&#xff1a;- size_average…

linux相关操作

1&#xff1a;掌握虚拟机快照的制作和还原 然后转到就欧克了&#xff0c;相当于游戏存档。 2&#xff1a;linux基础命令 1&#xff1a;掌握linux系统的目录结构 linux没有盘符概念&#xff0c;只有一个根目录/&#xff0c;所有文件都在它之下 路径的描述方式&#xff1a; 在l…