当前位置: 首页 > news >正文

架构思维:通用架构模式_系统监控的设计

文章目录

  • 引言
  • 什么是监控
  • 三大常见监控类型
    • 1. 次数监控
    • 2. 性能监控
    • 3. 可用率监控
  • 落地监控
    • 1. 服务入口
    • 2. 服务内部
    • 3. 服务依赖
  • 监控时间间隔的取舍
  • 小结

在这里插入图片描述


引言

架构思维:通用架构模式_从设计到代码构建稳如磐石的系统
架构思维:通用架构模式_稳如老狗的SDK设计最佳实践

架构思维:通用架构模式_怀疑下游的设计思路与最佳实践

我们以“防备上游、做好自己、怀疑下游”的准则,分别从系统设计、部署和代码层面,介绍了如何构建高可用后台系统。但再完善的防护也难保万无一失,真正的挑战在于在用户感知之前,第一时间发现问题。

接下来我们将从监控的角度出发,教你如何设计微服务监控,帮助快速、自动地暴露故障,保障系统稳定运行。

什么是监控

监控是指对系统运行状态数据持续审查,并设定阈值,对超出阈值的指标发出告警的机制。如下所示,监控数据通常以 时间(X 轴)指标值(Y 轴) 的曲线图形式展示:

在这里插入图片描述

X 轴:时间间隔(秒或分钟)
Y 轴:该间隔内汇聚的指标(数量、平均值、最大值等)


三大常见监控类型

1. 次数监控

用于统计某个事件或方法的调用次数,比如接口被调用次数、某段逻辑执行次数。

在这里插入图片描述

图 2:次数监控示例
Y 轴:指定间隔内总调用次数

2. 性能监控

关注接口或依赖调用的延迟,常用指标有:

  • 平均耗时(AVG) = 总耗时 / 调用次数
  • 最大耗时(Max) = 区间内单次最长耗时
  • TPn(如 TP999)= 排序后第 n‰ 位置的耗时值

通常将 Avg、Max、TP99X 三者合并展示:

> **图 3:性能监控示例**

3. 可用率监控

计算指定区间内业务执行成功的比例。

在这里插入图片描述

在可用率判断中,要区分:

  • 业务异常(如参数校验失败):不算失败,不降可用率
  • 非业务异常(如网络超时、空指针):算失败,需降可用率并报警

阈值设置需结合接口级别和 SLA,核心接口可设 100%,其他接口可适当放宽。


落地监控

业务

在这里插入图片描述

1. 服务入口

  • 次数监控

    1. 基于压测瓶颈设阈值告警,并配合限流
    2. 按调用方维度统计,快速定位流量异常来源
    3. 同环比监控,自动识别突增
  • 性能监控

    1. 必要时只告警 Avg、Max、TP999(或 TP9999)
    2. 按调用方分层监控,排查使用差异
    3. 基于入参(如批量大小)分段监控,辅助优化策略
  • 可用率监控

    1. 接口级与调用方级双重告警
    2. 按业务/非业务异常判定成功与否
    3. 阈值分级:重要接口近乎 100%,普通接口可降至 95%

2. 服务内部

  • 聚焦核心可疑方法,避免监控点过多导致告警疲劳
  • 监控 JVM(Young/Full GC、堆内存使用)、RPC 线程池剩余数、进程存活状态
  • 机器层面:CPU、内存使用率与负载(Load)监控

3. 服务依赖

在这里插入图片描述

  • 对每个下游依赖统一埋点监控(可用率、性能、次数)
  • 注意解析 RPCResult 等包装返回,防止“隐性”失败漏报
  • Java 应用可通过 AOP 或框架拦截(如 MyBatis Interceptor)统一实现

监控时间间隔的取舍

  • 秒级监控最优,能最快暴露故障
  • 但存储成本高(1s 数据量是 1min 的 60 倍)
  • 若系统同时支持秒级和分钟级,生产环境推荐秒级,测试或存储受限时可降至分钟级

小结

  • 三大基础指标:次数、性能、可用率
  • 三层架构落地:入口、内部、依赖
  • 补充监控:JVM、线程池、进程、机器资源
  • 阈值与时序:结合 SLA、接口重要度,优先秒级

在这里插入图片描述

相关文章:

架构思维:通用架构模式_系统监控的设计

文章目录 引言什么是监控三大常见监控类型1. 次数监控2. 性能监控3. 可用率监控 落地监控1. 服务入口2. 服务内部3. 服务依赖 监控时间间隔的取舍小结 引言 架构思维:通用架构模式_从设计到代码构建稳如磐石的系统 架构思维:通用架构模式_稳如老狗的SDK…...

架构、构架、结构、框架之间有什么区别?|系统设计|系统建模

在技术与知识中,我们总是频繁地遇到一些高度抽象、看似类似、却又各自承载着不同思想重量的词汇。“架构”、“构架”、“结构”、“框架”即是其中最为常见又最为令人困惑的一组术语。它们既是工程师们日常工作的核心语言,也是学者们在探索系统、组织、…...

系统架构设计(五):构件

定义 构件(Component)是指一个具有明确边界和独立部署能力的模块化单元,能够封装实现细节,并通过接口与其他构件协作完成系统功能。 主要特性 特性说明可复用性构件可以在不同系统中被重复使用。可部署性构件可以独立部署&…...

【系统架构师】2025论文《基于架构的软件设计方法》【最新】

😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔本文分享【系统架构师】2025论文《系统可靠性设计》,期待与你一同探索、学习、进步,一起卷起来叭! 目录 项目介绍背景介绍系统模块技术栈基于…...

MultiTTS 1.7.6 | 最强离线语音引擎,提供多音色无障碍朗读功能,附带语音包

MultiTTS是一款免费且支持离线使用的文本转语音(TTS)工具,旨在为用户提供丰富的语音包选项,实现多音色无障碍朗读功能。这款应用程序特别适合用于阅读软件中的离线听书体验,提供了多样化的语音选择,使得听书…...

Costmap代价地图

以下为ROS navigation导航工具包的move_base框架图。其中有两个关于代价地图的模块(红框所框),全局代价地图global_costmap和局部代价地图local_costmap,这两个代价地图实际上是调用的同一个功能包代码,通过配置不同的参数实例化为两个代价地…...

用生活例子通俗理解 Python OOP 四大特性

让我们用最生活化的方式,结合Python代码,来理解面向对象编程的四大特性。 1. 封装:像使用自动售货机 生活比喻: 你只需要投币、按按钮,就能拿到饮料 不需要知道机器内部如何计算找零、如何运送饮料 如果直接打开机…...

大规模容器集群怎么规划

规划大规模容器集群需要综合考虑多个方面,以下是一些关键的规划要点: 业务需求分析 应用类型和特点:明确容器集群上运行的应用类型,如 Web 应用、数据库、大数据处理等。不同类型的应用对资源的需求和性能要求各不相同。例如&am…...

机器学习第七讲:概率统计 → 预测可能性,下雨概率70%就是典型应用

机器学习第七讲:概率统计 → 预测可能性,下雨概率70%就是典型应用 资料取自《零基础学机器学习》。 查看总目录:学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手…...

蓝桥杯13届 卡牌

问题描述 这天, 小明在整理他的卡牌。 他一共有 n 种卡牌, 第 i 种卡牌上印有正整数数 i(i∈[1,n]), 且第 i 种卡牌 现有 ai​ 张。 而如果有 n 张卡牌, 其中每种卡牌各一张, 那么这 n 张卡牌可以被称为一 套牌。小明为了凑出尽可能多套牌, 拿出了 m 张空白牌, 他可以在上面…...

《Vue.js》阅读之响应式数据与副作用函数

Vue.js 《Vue.js设计与实现》(霍春阳) 适合:从零手写Vue3响应式系统,大厂面试源码题直接覆盖。重点章节:第4章(响应式)、第5章(渲染器)、第8章(编译器&…...

线下消费经济“举步维艰”,开源AI智能名片链动2+1+S2B2C小程序线上“狂飙突进”!

开源AI智能名片链动21模式S2B2C商城小程序:驱动消费经济迭代的数字化引擎 摘要:本文以中国消费经济四阶段演进为框架,分析开源AI智能名片链动21模式S2B2C商城小程序如何重构商业生态。研究显示,该系统通过AI算法驱动的精准需求匹…...

简述DNS域名服务器

DNS简述 在互联网中,识别一个主机通常有两种方式——主机名和IP地址。从人类角度来看,人类肯定更喜欢这些便于记忆的主机名标识方式,而对于路由器来说,路由器则更喜欢定长的,有结构层次的IP地址。所以DNS域名服务器就…...

小结: Port Security,DHCP Snooping,IPSG,DAI,

以下是华为和思科在 IP Source Guard、Dynamic ARP Inspection、DHCP Snooping、Port Security 四个安全功能的配置指令对比: 1. Port Security(端口安全) 思科(Cisco) # 进入接口模式 interface GigabitEthernet0/1…...

2025年阿里云ACP人工智能高级工程师认证模拟试题(附答案解析)

这篇文章的内容是阿里云ACP人工智能高级工程师认证考试的模拟试题。 所有模拟试题由AI自动生成,主要为了练习和巩固知识,并非所谓的 “题库”,考试中如果出现同样试题那真是纯属巧合。 1、在PAl-Studio实验运行完毕后,可以右键单…...

SwitchyOmega_Chromium 代理插件下载与配置

下载地址: 【免费】SwitchyOmega-Chromium.ran资源-CSDN文库 下载 SwitchyOmega_Chromium.ran 文件。 解压缩文件 解压第一层后,解压第二层代理插件SwitchyOmega_Chromium。 打开 Chromium 浏览器。 导入插件: 在浏览器地址栏输入 chrome://extensio…...

【Nova UI】十四、打造组件库之按钮组件(下):按钮组组件的构建之旅

序言 在之前的探索中,我们成功雕琢出了功能完备且样式精美的 Vue 按钮组件,它在前端界面上绽放着独特的光彩✨。然而,前端开发的创新之路永无止境。如今,为了满足更丰富的交互需求,我们将目光聚焦在按钮组组件的实现上…...

SQL注入

sql注入核心语句 information_schema 虚拟数据库(物理上不存在),能提供方皓文数据库元数据的方式,元数据是关于数据的数据,如数据库名、表名、列的数据类型、访问权限等 只能访问 information_schema下面的表: schemata表&#xf…...

Java面试高阶篇:Spring Boot+Quarkus+Redis高并发架构设计与性能优化实战

Java面试高阶篇:Spring BootQuarkusRedis高并发架构设计与性能优化实战 面试官(严肃): Q1: 你项目中如何实现高并发下的缓存优化? 候选人(水货): 我们用了Redis做缓存,…...

【CF】Day57——Codeforces Round 955 (Div. 2, with prizes from NEAR!) BCD

B. Collatz Conjecture 题目: 思路: 简单模拟 很简单的模拟,我们只需要快速的找到下一个离 x 最近的 y 的倍数即可(要大于 x) 这里我们可以这样写 add y - (x % y),这样就知道如果 x 要变成 y 的倍数还要…...

Matlab 列车纵向滑模二阶自抗扰算法和PID对比

1、内容简介 Matlab 223-列车纵向滑模二阶自抗扰算法和PID对比 可以交流、咨询、答疑 2、内容说明 略 列车模型 在运行过程中,已知列车受到牵引力或者制动力,基本阻力和附加阻力的作用,规定与列车运行方向相同的力为正,与运行…...

Swift实战:如何优雅地从二叉搜索树中挑出最接近的K个值

文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结未来展望 摘要 在日常开发中,我们经常会遇到“在一堆数据中找出最接近某个值”的需求。尤其在搜索引擎、推荐系统或者地理坐标匹配中,这种“最近匹配”的问题非常常见。Le…...

深度策略梯度算法PPO

一、策略梯度核心思想和原理 从时序差分算法Q学习到深度Q网络,这些算法都侧重于学习和优化价值函数,属于基于价值的强化学习算法(Value-based)。 1. 基于策略方法的主要思想(Policy-based) 基于价值类方…...

QuickList

Redis在3.2版本引入数据结构,是一个双端链表,每个节点都是一个ZipList。 引入的原因:ZipList申请内存空间是连续的,如果内存占用较多,申请内存效率很低 思想:属于分片存储的思想 Redis配置项&#xff1a…...

DVWA在线靶场-SQL注入部分

目录 1.SQL注入 1.1 low 1.2 Medium 1.3 high 1.4 impossible 1. SQL盲注 1.1 low 2.2 medium 2.3 high 2.4 impossible 1.SQL注入 显注:前端页面可以回显用户信息,比如 联合注入、报错注入。 盲注:前端页面不能回显用户信息,比…...

IDEA+git将分支合并到主分支、IDEA合并分支

文章目录 一、合并分支二、可能遇到的问题2.1、代码冲突 开发过程中我们可能在开发分支(dev)中进行开发,等上线后将代码合并到主分支(master)中,本文讲解如何在IDEA中将dev分支的代码合并到master分支中。 一、合并分支 功能说明:将dev分支的…...

【Linux笔记】——进程信号的产生

🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:Linux 🌹往期回顾🌹:【Linux笔记】进程间通信——system v 共享内存 🔖流水不争,争的是滔滔不 一、进程信号…...

Java后端文件类型检测(防伪造)

在 Spring Boot 项目中,为了防止用户伪造 Content-Type(例如将 .txt 文件改为 image/jpeg 上传),可以通过检查文件的 Magic Number(文件头签名)来验证文件的真实类型。以下是 详细实现步骤 和 完整代码示例…...

知名人工智能AI培训公开课内训课程培训师培训老师专家咨询顾问唐兴通AI在金融零售制造业医药服务业创新实践应用

AI赋能未来工作:引爆效率与价值创造的实战营 AI驱动的工作革命:从效率提升到价值共创 培训时长: 本课程不仅是AI工具的操作指南,更是面向未来的工作方式升级罗盘。旨在帮助学员系统掌握AI(特别是生成式AI/大语言模型…...

VUE3基础样式调整学习经验

首先创建一个vue项目最好要把不属于自己的样式都删除掉,以面出现css难以调整的情况: 1.assets目录下的main.css、base.css等样式全部删除 2.app.vue下的样式也全部删除 3.使用element plus一定要加入样式包: import element-plus/dist/in…...

AI与IoT携手,精准农业未来已来

AIoT:农业领域的变革先锋 在科技飞速发展的当下,人工智能(AI)与物联网(IoT)的融合 ——AIoT,正逐渐成为推动各行业变革的关键力量,农业领域也不例外。AIoT 技术通过将 AI 的智能分析能力与 IoT 的设备互联能力相结合,为农业生产带来了前所未有的精准度和智能化水平。 …...

物联网驱动的共享充电站系统:智能充电的实现原理与技术解析!

随着新能源汽车的快速普及,共享充电站系统作为其核心基础设施,正通过物联网技术的深度赋能,实现从“传统充电”到“智能充电”的跨越式升级。本文将从系统架构、核心技术、优化策略及实际案例等角度,解析物联网如何驱动共享充电站…...

MCP 入门实战:用 C# 开启 AI 新篇章

MCP 入门实战:用 C# 开启 AI 新篇章 一、什么是 MCP? MCP,全称为 Model Context Protocol(模型上下文协议),是一个开放的协议,它为应用程序向大型语言模型(LLM)提供上下…...

ES常识7:ES8.X集群允许4个 master 节点吗

在 Elasticsearch(ES)中,4 个 Master 节点的集群可以运行,但存在稳定性风险,且不符合官方推荐的最佳实践。以下从选举机制、故障容错、资源消耗三个维度详细分析: 一、4 个 Master 节点的可行性&#xff1…...

WebRTC:去中心化网络P2P框架解析

在互联网的世界里,数据的传输就像一场永不停歇的 “信息快递”。当我们使用 WebRTC 实现视频通话时,背后支撑的网络框架至关重要。今天,我们将深入探索 WebRTC 开发中视频通话的前置基础 ——P2P(点对点)框架&#xff…...

Linux 上安装RabbitMQ

🐇 安装 Erlang/OTP 27.3.4(最新稳定版) 1. 下载 Erlang 源码 cd /usr/local/src wget https://erlang.org/download/otp_src_27.3.4.tar.gz2. 解压源码 tar -zxvf otp_src_27.3.4.tar.gz cd otp_src_27.3.43. 安装依赖 sudo apt update …...

Service Mesh实战之Istio

Service Mesh(服务网格)是一种专为微服务架构设计的网络代理层,用于处理服务间的通信、管理和监控。Istio 是一个流行的开源 Service Mesh 实现,通过提供流量管理、观测性和安全性等功能,帮助开发者应对分布式系统的复…...

BGP练习

一、要求拓扑图 二、要求 完成上图内容,要求五台路由器的环回地址均可以相互访问 三、需求分析 1. 网络连通性目标 - 需求明确要求五台路由器(AR1 - AR5 )的环回地址能够相互访问。环回地址是路由器上用于测试、管理及作为BGP等协议中Ro…...

【Redis】分布式锁的实现

目录 一、本地锁存在的问题 二、redis实现分布式锁原理 三、使用示例 四、锁误删问题 解决思路 获取锁和释放锁代码优化 五、锁释放的原子性问题 解决思路(Lua脚本) 使用流程 总结 大家好,我是千语。上期给大家讲了使用悲观锁来解决…...

【vue】全局组件及组件模块抽离

一、全局组件 只要是实例化过的区域都可以使用 Vue.component("组件名",{ template: 内容} ) 二、组件模块抽离 抽离就是把template的内容写到body里面,然后建立id写到变量下的template里,id变量写到component里 body{ template: …...

手写 vue 源码 === watch 实现

目录 1. watch 的基本使用 2. watch 的整体架构 3. doWatch 函数的实现 3.1 处理不同类型的监听源 3.2 清理副作用的机制 3.3 创建响应式效果 3.4 初始化执行 3.5 返回停止函数 4. watch 如何基于 ReactiveEffect 实现 4.1 依赖收集过程详解 4.2 更新触发过程详解 …...

STM32核心机制解析:重映射、时间片与系统定时器实战——从理论到呼吸灯开发

知识点1【重映射的概念】 1、引入 默认: **定义:**系统或硬件在未经用户修改时的预设配置或行为 STM32的引脚功能、外设配置、中断向量表等默认由芯片设计或库函数预设。 部分重映射 **定义:**仅修改部分资源或地址的映射关系&#xff…...

【Linux网络编程】HTTPS协议原理

目录 一,HTTPS是什么? 1,什么是加密? 2,为什么需要加密? 3,常见的加密方式 对称加密 非对称加密 4,数据摘要&&数据指纹 二,HTTPS协议加密方案 方案一&a…...

【idea】快捷键ctrl+shift+F(Find in files)不起作用

问题描述 在idea中使用快捷键CtrlShiftF,进行内容的搜索,但是弹不出对话框、或有时候能弹出有时候又弹不出。 原因分析 1.怀疑是缓存问题?--清空缓存重启也没什么作用 2.怀疑是idea的问题?--有时行、有时不行,而且…...

「光域」系列激光测距传感器:以光为尺,重构空间认知边界

在150米深的地下矿井中,无人矿卡需要精准识别前方3厘米的落石;在千米高空的风电塔筒检测现场,工程师手持设备要穿透50米雾霭锁定0.1毫米的形变;在智能仓储的立体库房里,穿梭车需在0.3秒内完成货架间距的毫米级校准………...

http和https的区别

HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)是互联网上用于传输数据的两种协议,它们的主要区别如下: 1. 安全性 HTTP:明文传输,数据在传输过程中不加密,容易被窃…...

Dapp开发-如何开发一个dapp

DApp开发全流程指南:从需求到落地的技术实践与生态构建 ——2025年去中心化应用开发方法论与未来趋势解析 一、需求定位与架构设计:构建DApp的技术地基 需求精准定位 功能定义:明确DApp的核心场景(如DeFi借贷、NFT交易、DAO治理&…...

Python邮件处理(使用imaplib和email库实现自动化邮件处理)

在日常工作中,我们经常需要自动化处理电子邮件,比如自动下载附件、解析邮件内容、处理特定格式的数据等。本文将通过一个实际案例,详细介绍如何使用Python的imaplib和email库来实现邮件的自动化处理。 目录 环境准备与库介绍IMAP邮件服务器连…...

时空注意力机制深度解析:理论、技术与应用全景

时空注意力机制作为深度学习领域的关键技术,通过捕捉数据在时间和空间维度上的依赖关系,显著提升了时序数据处理和时空建模能力。本文从理论起源、数学建模、网络架构、工程实现到行业应用,系统拆解时空注意力机制的核心原理,涵盖…...

鸿蒙 UIAbility组件与UI的数据同步和窗口关闭

使用 EventHub 进行数据通信 根据 Stage 模型概念图 UIAbility 先于 ArkUI Page 创建 所以,事件要先 .on 订阅 再 emit 发布 假如现在有页面 Page1 和他的 UIAbility // src/main/ets/page1ability/Page1Ability.ets onCreate(want: Want, launchParam: Ability…...