微服务架构 | 超时管理

news2024/11/20 13:23:16

INDEX

      • LSA 级别与全年停机时间速查表
      • LSA 级别实战
      • TP 性能
      • 超时时间设计原则

LSA 级别与全年停机时间速查表

计算公式:60 * 60 * 24 * 365 * (1-LSA) = 31,536,000‬ * (1-LSA)

系统级别LSA级别全年停机时间
0+99.999%5分钟
099.99%52分钟
199.9%8.8小时
299%3.65 天

LSA 级别实战

0+ 级系统是目前业界的普遍努力方向,已有实现了 99.995% 的案例
0 级系统是 涉及核心资金交易的基础服务,需要不间断运行,长时间不可用可能影响名誉、品牌、战略等
1 级系统是 不涉及资金的核心基础服务,需要不间断运行,长时间不可用会影响用户使用产品的核心功能或用户体验
2 级系统是 其他服务、内部服务,长时间不可用只会影响服务自身,或不会对用户产生影响

TP 性能

常见的 TP 性能有 TP99、TP999、TP9999
TP 性能是指,一段时间内,满足 99%、99.9%、99.99% 忘了请求的最小时间。
即:某次统计,服务的 TP99 = 100ms,则意味着 此服务 99% 的网络请求可以在 100 ms 的时间内完成响应
通常计算方式为,统计单位时间内的所有请求,按其相应时间进行排序,计算处于 x 位置的请求,返回其相应时间,如下图
在这里插入图片描述

TP 时间在统计时:

  • 忽略异常毛刺,毛刺大概率是偶发现象,比如网络抖动等,不能用来说明问题
  • 通常从压测数据来,一般使用分钟级压测数据进行统计
  • 通常使用调用方视角,而非服务方视角进行统计

超时时间设计原则

  • 基于服务所属系统级别设置
  • 基于系统对应的 TP 性能设置
  • 符合全链路超时漏斗

常见超时时间设置公式

系统级别超时计算
99.99%TP9999 * 1.2 + 50ms
99.9%TP999 * 1.2 + 50ms
99%TP99 * 1.2 + 50ms
  • 1.2 可以认为是一个 波动系数,通常相对稳定的系统可以稍小,反之可以稍大
  • 50ms 是为 GC 准备的时间,通常一次 GC 需要 20-50ms
  • 这两个数值常基于对生产环境、准生产环境的监控或压测,若 充分压测,可以认为对应的 TP 性能就是考虑了波动的数值,因此 可以忽略波动系数
  • 这两个数值也可以基于架构师团队的预测和调整

超时漏斗
在这里插入图片描述
超时漏斗如上图所示:服务 A 调用服务 B,超时时间 A > 超时时间 B

超时漏斗意义/不满足时的问题
首先可以将一个服务的超时时间可以理解为:服务处理单个请求时,承诺的占用系统资源的最大时间
对于一个请求,若如上图所示调用关系,上游服务应该持有系统资源更长时间,才能完整的收到下游服务的反馈
不满足超时漏斗可能导致两个问题

  • 资源占用上升:
    • 满足漏斗:请求到达服务 B,B 会开辟响应的资源,直到下游返回,服务处理完成,或达到超时时间释放
    • 违反漏斗:服务 B 一定等到超时时间再释放(实际处理时间从 ≤ 变为 =超时时间),增加资源占用
  • 降级不可靠:
    • 满足漏斗:得到基础服务的返回或降级,并继续处理
    • 违反漏斗:没得到基础服务的返回或降级,最后按服务 B 的降级返回

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

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

相关文章

QT学习day1

一、思维导图 二、作业&#xff1a;实现登录界面 #include "widget.h" #include<QDebug> #include<QIcon>Widget::Widget(QWidget *parent): QWidget(parent) {/**********************窗口******************///设置窗口图标this->setWindowTitle…

C++多线程编程(第四章 案例1,C++11和C++17 多核并行计算样例)

目录 4.1手动实现多核base16编码4.1.1 实现base16编码4.1.2无多线程代码4.1.3 C 11多线程代码4.1.4 C 17多线程并发4.1.5 所有测试代码汇总 4.1手动实现多核base16编码 4.1.1 实现base16编码 二进制转换为字符串 一个字节8位&#xff0c;拆分为两个4位字节&#xff08;最大值…

产品经理必备的14款需求管理工具推荐!

产品管理需求在产品经理的日常工作中扮演着至关重要的角色&#xff0c;这一关键任务为产品开发工作和资源投入提供了坚实的基础&#xff0c;它是创造杰出产品的必不可少前提。 面对各式各样的需求&#xff0c;产品经理可以使用专业的需求管理工具来进行集中收集和管理&#xf…

VulnHub Alice

一、信息收集 发现开发了22、80 2.访问ip&#xff0c;右击查看源代码 发现需要利用X-Forwarded-For 火狐插件&#xff1a;X-Forwarded-For Header 挂上代理后&#xff1a; 出现以下页面&#xff1a; 先注册一个账户&#xff0c;然后再登录 发现有参数进行传参 发现传参&a…

网站如何有效防止网络攻击

互联网上的网站和应用程序受到各种威胁&#xff0c;如黑客、恶意软件和数据泄漏。因此&#xff0c;了解如何解决网站被攻击的问题至关重要。本文将介绍一些简单的步骤&#xff0c;帮助您提高您的网站的安全性。 确认攻击 要解决网站被攻击的问题&#xff0c;首先需要识别是否遭…

MES管理系统的设计与实施

随着制造业的快速发展&#xff0c;MES生产管理系统逐渐成为企业提高生产效率和管理水平的重要工具。然而&#xff0c;在实施MES管理系统的过程中&#xff0c;如何确保其有效性和可持续性成为了一个亟待解决的问题。本文将从以终为始、自我完善与适应变化三个方面探讨MES管理系统…

数据结构与算法课后题-第五章(树、森林)

1、 2、 3、 4、 5、 6、 7、 8、 9、

Studio One6.5最新版本新增了对Linux的支持

音乐制作人们&#xff0c;这是你们翘首以待的消息。数字音频工作站&#xff08;DAW&#xff09;已经成为音乐制作专业人士重要工具之一。 遗憾的是&#xff0c;对于 Linux 用户而言&#xff0c;选择十分有限。最受欢迎的选择通常是开源 DAW&#xff0c;如 Ardour、Audacity和闭…

SSM - Springboot - MyBatis-Plus 全栈体系(二十九)

第六章 SpringBoot 五、SpringBoot3 整合 MyBatis 1. MyBatis 整合步骤 导入依赖&#xff1a;在您的 Spring Boot 项目的构建文件&#xff08;如 pom.xml&#xff09;中添加 MyBatis 和数据库驱动的相关依赖。例如&#xff0c;如果使用 MySQL 数据库&#xff0c;您需要添加 …

Pulsar Manager配置自定义认证插件访问

Pulsar Manager配置自定义认证插件访问 Pulsar Manager和dashboard部署和启用认证 pulsar自定义认证插件开发 前面博客讲了以token方式访问pulsar 这节博客讲如何配置自定义认证插件的方式访问pulsar #启动pulsar-manager docker run --name pulsar-manager -dit \-p 9527:…

C# Winform编程(3)对话框

C# Winform编程&#xff08;3&#xff09;对话框 Show(string text);Show(string text, string caption);Show(string text, string caption, MessageBoxButtons buttons);Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon); using System;…

UE5发布Android屏幕适配实践(Blueprint)

之前发了一个文章UE5屏幕适配&#xff0c;后续做项目中又遇到问题&#xff0c;对DPI Scale又有了理解&#xff0c;所以又写了这篇文章。https://mp.csdn.net/mp_blog/creation/editor/133337134https://mp.csdn.net/mp_blog/creation/editor/133337134 DPI Scale Rule使用Short…

Linux:将mysql数据导入mongodb

mysql和mongodb都要同时开启 进入mysql创建一个数据库为aaa create database aaa; 创建一个tarro表结构为 &#xff08;id int,name varchar(20)&#xff09; create table tarro(id int,name varchar(20)); 插入几个数据&#xff0c;等会把这里的数据导过去 insert in…

Java多线程解密:揭秘多线程的奥秘,给你全面了解与实践的权威指南

一&#xff1a;进程与线程 概述&#xff1a;几乎任何的操作系统都支持运行多个任务&#xff0c;通常一个任务就是一个程序&#xff0c;而一个程序就是一个进程。当一个进程运行时&#xff0c;内部可能包括多个顺序执行流&#xff0c;每个顺序执行流就是一个线程。 进程&#…

Python学习基础笔记七十二——IDE集成开发环境

集成开发环境&#xff0c;英文缩写是IDE。 IDE可以帮你更高效地开发项目代码。因为它提供了非常实用的功能&#xff0c;比如项目文件管理、语法高亮、代码导航、自动补齐代码、语法静态检查、调试、版本控制等等。 两款IDE&#xff1a;Pycharm和VSCode。 pycharm中的代码文件都…

香港学界呼吁RWA“在港先发”,构建基于港元稳定币的Web3生态!

2023年以来&#xff0c;市场对于RWA&#xff08;Real World Assets&#xff09;即真实世界资产“代币化”的讨论愈发频繁&#xff0c;一些观点认为 RWA将在下一轮加密资产牛市中成为焦点&#xff0c;部分Web3创业者和传统金融企业也快速将业务方向瞄准相关赛道&#xff0c;而被…

Java|学习|异常

1.异常 1.1 异常 1.1.1 概述 异常&#xff1a;就是程序出现了不正常的情况。 Error&#xff1a;严重问题&#xff0c;不需要处理。 Exception&#xff1a;称为异常类&#xff0c;它表示程序本身可以处理的问题。 RuntimeException&#xff1a;在编译器不检查&#xff0c;出…

WorkPlus即时通讯办公软件,助力企业实现移动化办公

在移动互联网的时代背景下&#xff0c;企业对于高效的移动平台需求日益迫切。WorkPlus作为领先品牌&#xff0c;致力于为企业打造卓越的移动平台&#xff0c;助力企业实现协作与效率的突破。本文将探讨WorkPlus如何通过其专业的解决方案&#xff0c;为企业打造无限可能的移动办…

高级系统架构设计师_笔记_真题

2020 科目一 位示图的计算 分页管理-页式存储 软件系统的文档可以分为用户文档和系统文档两类。软件活动&#xff1a; 对应软件开发的各种活动&#xff0c;软件开发工具包括&#xff1a;需求分析工具、设计工具、编码和排错工具、测试工具等。按需求描述定义的方法可将需求分…

day35

今日内容概要 Socket抽象层(socket编程) 基于TCP协议的借助socket可以编程客户端和服务端的程序 链接循环 通信循环 基于UDP协议的套接字(socket)编程 粘包现象 如何解决粘包现象(重要的是解决的思路) struct模块的使用(打包、解包) 今日内容详细 Socket抽象层&#x…