高并发高可用

news2024/10/5 15:24:53

一、高并发

1、异步并发

同步阻塞

异步Future

异步CallBack

异步编排CompletableFuture

请求缓存

请求合并

2、扩容

单体应用垂直扩容

单体应用水平扩容

应用拆分

数据库拆分水平/垂直拆分

使用Sharding-jdbc分库分表/读写分离

数据异构

任务系统扩容

3、队列

异步处理/系统解耦/数据同步/流量削峰

缓冲队列/任务队列/消息队列/请求队列/数据总线队列

Disruptor+Redis队列

基于Canal实现数据异构

4、应用级缓存

缓存回收策略: 空间/容量/时间

缓存回收算法FIFO/LRU/LFU

Java堆/Java堆外/磁盘缓存

Guava/Ehcache/MapDB

5、HTTP缓存

浏览器缓存

HttpClient客户端缓存

Nginx代理缓存

6、多级缓存

分布式缓存

热点数据与更新缓存

更新缓存与原子性

缓存崩溃与快速修复

7、池化

数据库连接池

HttpClient连接池

线程池

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WZx4MOcP-1670769755281)(https://farm1.staticflickr.com/888/42882679512_4e2d165fe4_b.jpg)]

二、高可用

2.1 超时与重试

代理层超时与重试

web窗口超时

中间件客户端超时与重试

数据库客户端超时

NOSQL客户端超时

业务超时

前端Ajax超时

2.2 回滚

事务回滚

代码 库回滚

部署版本回滚

数据版本回滚

静态资源回滚

2.3 压测与预案

2.3.1 系统压测

硅油方案:压测接口/并发量/压测策略/压测指标

压测报告:机器负载/QPS/响应时间/成功率

压测方式:线下/线上压测

读写/仿真/引流/隔离集群/缩容压测

单机/集群/离散/全链接路压测

2.3.2 系统优化和容灾

单机调优

架构优化/系统扩容

跨机房容灾

2.3.3 应急预案

网络接入层(DNS/LVS/HaProxy)

应用接入层(Nginx/OpenRestry)

WEB应用层(Tomcat)

服务层(Dubbo)

数据层(Redis/DB)

2.3.4 监控报警

服务器监控/系统监控/JVM监控/接口监控

报警策略:监控时间段、报警阀值、通知方式

2.4 负载均衡

负载均衡算法

失败重试机制

健康检查机制

动态负载均衡

2.5 限流

限流算法

应用级限流

分布式限流

接入层限流

2.6 降级

降级预案

自动降级/开关降级

读服务/写服务降级

多级降级

配置中心

使用Hystrix降级

使用Hystrix熔断

2.7 隔离

进程线程隔离

集群/机房隔离

读写隔离

动静隔离

爬虫/热点隔离

使用Hystrix隔离

基于Servlet3的请求隔离

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Rf0dYzI-1670769642304)(https://farm2.staticflickr.com/1765/42882676502_0e93cc9e67_b.jpg)]

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

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

相关文章

[LeetCode周赛复盘] 第 93 场双周赛20221015-补

[LeetCode周赛复盘] 第 93 场双周赛20221015-补 一、本周周赛总结二、 [Easy] 6261. 数组中字符串的最大值1. 题目描述2. 思路分析3. 代码实现三、[Medium] 6262. 图中最大星和1. 题目描述2. 思路分析3. 代码实现四、[Medium] 6263. 青蛙过河 II1. 题目描述2. 思路分析3. 代码实…

【OpenCV学习】第13课:基本阈值操作

仅自学做笔记用,后续有错误会更改 参考文章:https://blog.csdn.net/qq_37835727/article/details/123373339 理论 图像阈值:什么是图像阈值?简单点来说就是把图像分割的标尺, 举个栗子, 现在想象一个场景, 一个桌子上…

BA_重投影误差e对于相机的位姿ξ和对空间点的坐标P的雅可比矩阵的推导

1. 基本思路 重投影误差表示为e, 相机的位姿表示为ξ (或者表示为T(R,t)), 空间点表示为P, 则空间点投影到相机坐标系下的空间坐标点的相机坐标表示为P[X, Y, Z], 则 重投影误差e对于相机的位姿ξ的雅克比矩阵表示为 分别求等式右侧的两半部分(误差对空…

DevExpress WinForms 22.2

DevExpress WinForms 22.2 添加了对Microsoft.NET 7的完全支持。 此版本现在需要.NET 6和Microsoft Visual Studio 2022(v17.0)或更高版本。 这不会影响.NET Framework客户,产品程序集在此发布周期中将继续以.NET Framework 4.5.2为目标。 蒙皮和矢量图标 WXI皮肤的…

每天五分钟机器学习:经典的降维算法——主成分分析法PCA

本文重点 前面我们学习了降维算法的两大应用场景,本节课程我们将学习具体的降维算法PCA,它是主成分分析法。 PCA要做什么? 将二维数据降维到一维,关键就是找到一个方向向量,然后把所有的数据都投射到该向量上,那么什么样的方向向量最好呢? 我们希望投射平均均方误差…

UIPickerView,UIDatePicker,UITextView

文章目录UIPickerView概念应用创建选中数据时的回调代理UIDatePicker概念创建四种模式UITextView概念创建常用属性与方法常用协议方法UIPickerView 概念 UIPickerView是一个列表控件。它可以提供给用户有限个数的可供选择的选项。 他可以设置列数和每一列的行数,然…

Fiddler抓包和Fiddler过滤器

目录 一、Fiddler与其他抓包工具的区别 二、Fiddler的工作原理 三、使用fiddler实现手机抓包 四、Filters过滤器 一、Fiddler与其他抓包工具的区别 1、Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够&…

简述基于JavaEE企业级开发技术

一、绪论 1、学习内容 javaEE企业开发技术概述javaEE容器——SpringORM数据层——MyBatis/JPAWeb层——Spring MVC展现层——JSP/Thymeleaf整合框架——SSM/SSH用户模块分析用户模块功能模块设计 前端框架:Bootstrap,NodeJS,Vue/React/Ang…

[附源码]计算机毕业设计个性化名片网站Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Appium基础 — Appium测试环境搭建总结

1、Appium测试环境搭建整体思路 (1)Android测试环境搭建 Android测试环境需要搭建三个环境,Java,AndroidSDK,Android模拟器。 为什么要安装这三个环境? Java:Android的应用程序层使用的语言是…

理解Linux设备树(DTS)

DTS Dts:DTS即Device Tree Source,是一个文本形式的文件,用于描述硬件信息。一般都是固定信息,无法变更,无法overlay。 Dtsi:可以理解为dts的公共部分,添加、变更非常灵活。Dtsi包含在dts中。 …

基于 EasyOCR + HanLp 实现图片文字实体(中文姓名、机构名、地域名)识别

一、EasyOCR HanLp EasyOCR 是一个python版的文字识别工具。目前支持80中语言的识别。并且支持:图像预处理(去噪、色彩饱和度、尖锐处理)、CRAFT文字检测、中间处理(倾斜处理等)、文字识别、后续处理、输出结果。框架如下&#…

RHCE实验--ansible

第四章 1、使用debug模块,显示当前受管主机的dns服务器的ip地址。 2、将createuser.fact文件传输到受管主机上作为自定义事实变量文件(/etc/ansible/facts.d/),该文件的内容如下: [general] username wujing mima…

以太网 STP临时环路的产生、STP BPDU的转发过程、根桥故障案例分析。

2.10.2 以太网 传统STP生成树(STP临时环路、STP BPDU的转发过程、根桥故障案例) 传统STP生成树2.10.2 以太网 传统STP生成树(STP临时环路、STP BPDU的转发过程、根桥故障案例)STP临时环路:STP BPDU的转发过程&#xff…

多维数据分析

【数据挖掘】数据挖掘#商业智能(BI)数据分析挖掘概念 数据挖掘目前在各类企业和机构中蓬勃发展。因此我们制作了一份此领域常见术语总结。 分析型客户关系管理(Analytical CRM/aCRM): 用于支持决策,改善公司跟顾客的…

redis集群详细搭建方式(含原理、操作指令、异常处理)

目录 1.概述 2.配置 2.1.配置文件 2.2.合体 2.3.进入cli 3.集群操作 3.1.查看集群信息 3.2.集群中录入值 3.3.查询集群中的值 4.故障处理 1.概述 概念: redis集群是从3.0版本开始支持的一个功能,是redis的一种水平扩展方式,将全局数据分…

NNDL 作业12:第七章课后题

习题7-1在小批量梯度下降中,试分析为什么学习率要和批量大小成正比. 在小批量梯度下降中: 令,则: 因此我们要使得参数最优,则为最优的时候的常数,故学习率要和批量大小成正比。 习题7-2在Adam算法中,说明指数加权平均…

以太网 传统STP生成树的BPDU介绍、STP端口状态介绍与切换过程,STP详细的工作过程。

2.10.1 以太网 传统STP生成树(STP BPDU、STP端口状态、STP工作过程) STP生成树协议的之间的交互通过STP BPDU(根协议数据单元,Bridge Protocol Data Unit)进行。 传统STP生成树2.10.1 以太网 传统STP生成树&#xff0…

《码出高效》五 异常与日志

前言 本章主要是讲异常处理,关于异常主要有三个问题: 哪里发生异常 谁来处理异常 如何处理异常 围绕这三个问题就有了一套异常处理机制 异常分类 通常异常时针对不稳定代码的,并且需要区分类型 throw和throws的区别: 以此段代…

session条件竞争

PHP SESSION 的存储 Session会话存储方式 PHP将session以文件的形式存储服务器的文件中,session.save_path来控制 默认路径 /var/lib/php/sess_PHPSESSID /var/lib/php/sessions/sess_PHPSESSID /tmp/sess_PHPSESSID /tmp/sessions/sess_PHPSESSID session文件默…