面试场景题系列:设计指标监控和告警系统

【系统设计】指标监控和告警系统 在本文中,我们将探讨如何设计一个可扩展的指标监控和告警系统。 一个好的监控和告警系统,对基础设施的可观察性,高可用性,可靠性方面发挥着关键作用。下图显示了市面上一些流行的指标监控和告警服务。接下来,我们会设计一个类似的服务,可以供大公司内部使用。从一个小明去面试的故事开始。面试官:如果让你设计一个指标监控和告警系统,你会怎么做?小明:好的,这个系统是为公司内部使用的,还是设计像 Datadog 这种 SaaS 服务?面试官:很好的问题,目前这个系统只是公司内部使用。小明:我们想收集哪些指标信息?面试官:包括 阅读详情

在本文中,我们将探讨可扩展的指标监控和告警系统的设计。理解基础设施的状况对维持其可用性和可靠性至关重要。

图-1展示了一些市面上最流行的商用和开源的指标监控和告警服务。

图-1

1.场景边界界定

为了便于展开设计以及考虑通用性,监控和告警需求如下:

(1)流量大。

•1亿日活用户。

•1000个服务器池,每个池有100台机器,每台机器上有100个指标,总共有1000万个指标。

•数据保留12个月。

•假设每天触发50000个告警。

(2)可以监控一系列指标,包括但不限于:

•CPU使用率。

•请求数量。

•内存使用率。

•异常数量。

•消息队列里的消息数量。

(3)系统应该是可扩展的,以便容纳更多的指标、告警等。

(4)系统应该高度可靠,以避免错失关键告警。

(5)值班开发者应该可以快速接收到告警,从而及时开展调查。

2.高层级设计

在本节中,我们会讨论系统的基本原理、数据模型和高层级设计。

2.1 基本原理指标

监控和告警系统通常包含5个组成部分,如图-2所示。

•数据收集:从不同来源收集指标数据。

•数据传输:把数据从源头传输到指标监控系统。

•数据存储:组织和存储传入的数据。

•告警:引起工程师的注意,使其调查问题或者触发自动修复。告警系统必须能将通知发到不同的通信渠道。

•可视化:通过图、表等来展示数据。一图胜千言。当数据以可视化方式展示时,我们更容易发现模式、趋势或者问题。

图-2

2.2 数据模型指标

数据通常以时间序列(Time-series)的格式记录,它展示了数据随着时间的变化。这里有两个例子。

例1:生产环境的服务器实例i631在20:00的CPU负载是怎样的(见图-3)

图-3

例2:所有Web服务器在最近的10分钟内的平均CPU负载是多少?在存储中,我们可能有如下的数据。

每个时间序列包括如表-1所列的数据指标描述:

数据访问模式

在图-4中,y轴代表时间序列名字和标签的组合,x轴表示这个时间序列被记录时的时间点。如你所见,有许多时间序列在同一时间点被记录,1.1节提到,每天大概有1000万个运行指标被写入,所以毋庸置疑这个流量是重写入(Write-heavy)的。同时,查询通常查的是某一个时间区间的多个时间序列,例如图-4中的高亮部分。如果你想查询一个服务池(Service Pool)中所有机器的报错数据,你就需要聚合多个时间序列的样本。因为可视化和告警服务都会将查询请求发送给查询服务,所以这个系统也是重读取(Read-heavy)的。如图-4所示,数据看起来像是一个巨大的矩阵,在横纵两个方向都可以无限增长。

图-4

数据存储系统

有了对数据访问模式的清晰理解,我们就可以选择数据存储系统了。

我们可以把数据存储在关系型数据库中,但是会遇到各种挑战,比如写性能和可扩展性方面的问题,主要是因为它们并没有针对典型的时间序列工作负载(随时间变化的数据)做优化。另一方面,有几个非关系型数据库可以很高效地处理时间序列数据。

OpenTSDB是一个分布式时间序列数据库,但它是基于Hadoop和HBase的,运行Hadoop/HBase集群会增加复杂性。Bigtable也可以用于处理时间序列数据。Twitter使用MetricsDB,而亚马逊提供了Timestream作为时间序列数据库。

根据DB-Engines的排名,两个最流行的时间序列数据库是InfluxDB和Prometheus,它们都被设计来存储大量的时间序列数据并快速对数据进行实时分析。这两个数据库主要依赖内存缓存和硬盘存储,并且在数据的持久性和性能方面表现出色。我们来看一个例子。如图-5所示,一个有8核和32GB内存的InfluxDB每秒可以处理超过250,000次的写操作!

图-5

2.3 高层级设计

图-6展示了高层级的设计示意图。

图-6

•指标来源:可以是应用服务器、SQL数据库、消息队列等。

•指标收集器:收集指标数据,并把数据写入时间序列数据库。

•时间序列数据库:把指标数据存储为时间序列。

•查询服务:简化了从时间序列数据库查询和获取数据的过程。

•告警系统:将告警通知发送到各个目的地。

•可视化系统:用各种图表来展示指标。

让我们接着深入探讨一些组件。

3. 设计继续深入

在系统设计面试中,候选人要能深入解释一些关键组件或者流程。在本节,我们会详细讨论如下话题。

•指标数据的收集。

•扩展系统。

•查询服务。

•存储层。

•告警系统。

•可视化系统。

3.1 指标数据的收集

首先,我们看一下指标数据收集流程。图-7高亮显示了系统中的指标数据收集部分。

图-7

拉模型vs.推模型

有两种收集指标数据的方法:拉或推。选择正确的数据收集方法,是在设计的早期就要做的重要决定。

(1)拉模型。图-8展示了采用拉模型通过HTTP请求收集数据。我们有专门的指标收集器,可以定期从运行的应用中拉取指标值。

在这个方法中,指标收集器需要知道服务端点的完整列表,以便爬取。我们可以在“指标收集器”服务器上用一个文件来存储DNS/IP地址信息。但是在大型系统中,服务器可能会被频繁添加或移除,因此很难维护这样的列表文件,并且我们希望确保指标收集器不会丢掉任何来自新服务器的指标数据。好消息是,我们通过服务发现功能可以得到一个可靠、可扩展和可维护的解决方案。服务发现组件是Kubernetes、ZooKeeper等提供的。在服务发现组件中注册服务的可用性,然后指标收集器就可以查询服务发现组件来获取可用服务列表以便爬取。

图-8

服务发现组件中包含了关于何时和从何处收集指标的配置规则,如图-9所示。

图-9

图-10详细解释了拉模型。

图-10

•指标收集器从服务发现组件获取Web服务器的配置元数据(比如爬取时间间隔、IP地址、超时时间等)。

•指标收集器通过HTTP/metrics端点来拉取指标数据。为了暴露/metrics端点,通常需要在Web服务器上安装客户端库(比如SDK)。

(2)推模型。如图-11所示,多个指标来源(如Web服务器、数据库集群等)直接将数据发给指标收集器。

图-11

这个简单的推模型有一个缺点,它可能会给指标收集器带来巨大的流量。这可能成为一个瓶颈。解决方案之一是在应用服务器(如Web服务器、数据库服务器等)上安装代理(agent)。代理是运行在应用服务器上的软件。它从应用服务器上收集各种指标数据并进行处理,然后把它们推送给指标收集器。如果推送的流量大,代理就会进行调整以避免指标收集器被压垮。如图-12所示,指标收集代理安装在应用服务器上。Palo Alto Networks采用了类似的方法。

图-12

采用哪一种模型更好呢?就像生活中的许多事一样,这没有一个明确的答案。在现实中,这两种模型都被广泛应用。

•采用拉模型的例子:Prometheus。

•采用推模型的例子:Amazon CloudWatch和Graphite。在面试中,更重要的是了解每个方法的优缺点,而不是选出一个优胜者。表-2比较了拉模型和推模型的优缺点。

表-2

3.2 扩展系统

我们来仔细看看指标收集器和时间序列数据库。无论你使用什么模型(推或者拉),指标收集器都会收集巨量的数据。原先设计(见图-13)中的指标收集器可扩展性不太好,这是因为:

•指标收集器也负责数据处理,它很容易被压垮。指标收集器应该尽可能简单并保持低延时,以便最大限度地降低数据丢失的风险。

•如果时间序列数据库不可用,则要么有丢失数据的风险,要么指标收集器需要将数据存储在临时数据存储中,并在稍后重新发送该数据。

图-13

了减轻这两个问题的影响,我们引入了队列组件,如图-14所示。

图-14

在这个设计中,指标收集器将指标数据发送给队列系统,比如Kafka,然后消费者或者流处理服务(如Apache Storm、Flink和Spark)处理数据并将其推送给时间序列数据库。这个方法有如下优点。

•Kafka可以用作高可靠和可扩展的分布式消息平台。

•它解耦了数据收集和数据处理服务。

•当数据库不可用时,将数据保留在Kafka中,能容易地避免数据丢失。

•不会给指标收集器施压。

通过Kafka扩展

有多种方法可以利用Kafka内置的分区机制来扩展我们的系统。

•基于吞吐量的需求配置分区数量。

•可以按指标名字分区,以便消费者按名字来做聚合(见图-15)。

•可以进一步按标签来分区。

•可以对指标分类和排定优先级,以便先处理重要的指标。

图-15

3.3 查询服务

查询服务由查询服务器集群提供。它们访问时间序列数据库,并处理来自可视化系统或者告警系统的请求。使用一组专有的查询服务器把时间序列数据库与客户端(可视化和告警系统)解耦,使得我们无论何时需要都可以更换时间序列数据库或者可视化和告警系统。为了减少时间序列数据库的负载并使查询服务更高效,这里添加了缓存服务器来存储查询结果,如图-16所示。

图-16

时间序列数据库查询语言

大部分流行的指标监控系统(比如Prometheus和InfluxDB)不使用SQL,而是创建了自有的查询语言。这么做有几个原因。最重要的一个原因是使用SQL语句来查询时间序列数据很困难。例如,influxdata博客上的文章“Why We’re Building Flux,a New Data Scripting and Query Language?”说,使用SQL计算指数滑动平均值可能需要写这些代码:

但是,如果在InfluxDB中使用Flux语言,只需要写下面这几行代码即可,因为Flux是专门针对时间序列分析做过优化的语言:

3.4 存储层

缓存最近的数据

根据Facebook的论文“Gorilla:A Fast,Scalable,In-Memory Time Series Database”,在所有对运营数据存储的查询中,至少有85%针对的是过去26小时以内收集的数据。如果我们缓存最近的时间序列数据,就可以显著提升插入和查询速度。如图-17所示,我们在时间序列数据库之上添加了一个缓存层。时间序列数据库的存储引擎通常包括下面4个组成部分:预写日志(Write Ahead Log,WAL)、缓存、时间结构合并树(Time-Structured Merge Tree,TSM树)和时间序列索引(Time Series Index,TSI)。存储引擎的设计需要专门的领域知识,不在本文的讨论范围内。感兴趣的读者可以阅读Influx DB存储引擎的设计文档“InfluxDB Storage Engine”。

图-17

聚合

为了确保查询服务提供低延时的查询且减少要存储的数据量,我们允许工程师或者数据科学家按特定的粒度(1秒、10秒、1分钟、1小时等)来灵活聚合和存储时间序列数据。Uber也使用了类似的方法。

图-18

空间优化

如1.1节中所述,要存储的指标数据量是巨大的。以下是一些可以缓解这个问题的策略。

(1)数据编码和压缩。数据编码和压缩可以显著减小数据的大小。我们来看一个简单的例子。如图-19所示,1610087371和1610087381之间只差10秒,差值“10”只需要用4比特表示而无须保存32位的完整时间戳。所以,与其存储绝对值,不如存储值的增量以及一个基础值,比如1610087371、10、10、9、11。

图-19

(2)向下采样(Downsampling)。向下采样是把高分辨率数据转换为低分辨率数据的过程。它用于减少整体的硬盘使用量。因为我们的数据保存期是1年,所以可以向下采样老数据。例如,我们允许工程师和数据科学家为不同的指标定义规则。下面是一个例子。

•保存期:1天,不采样。

•保存期:30天,向下采样到1分钟的分辨率。

•保存期:1年,向下采样到1小时的分辨率。

3.5 告警系统

现在,我们看一下告警系统,如图-20所示。

告警的流程如下:

1.将规则配置文件加载到缓存服务器。规则以配置文件的形式保存在硬盘上。YAML是用来定义规则的一种常用格式。下面是一个告警规则的例子:

2.告警管理器从缓存服务器获取告警规则。

3.基于所配置的告警规则,告警管理器按照预定的间隔请求查询服务。如果监控的指标超过了阈值,就会触发告警事件。告警管理器也负责如下事项:

•过滤、合并和删除重复告警。图-21展示了对同一个实例(实例1)触发的告警进行合并的例子。

图-21

•访问控制。为了避免人为错误并保证系统安全,只允许获得授权的人访问特定的告警管理操作。

•重试。告警管理器检查告警的状态并确保至少发送了一次通知。

4.告警存储是一个键值数据库(比如Cassandra),它保存所有告警的状态机。它确保至少发送了一次通知。

5.合格的告警被插入Kafka。

6.告警消费者从Kafka中拉取告警事件。

7.告警消费者处理Kafka中的告警事件,并将通知发送到不同的接收端,如邮件、短信、PagerDuty或者HTTP端点。

3.6 可视化系统

可视化系统建立在数据层之上,可以基于不同的时间范围将指标展示在指标仪表板上,而将告警展示在告警仪表板上。图-22展示了一个仪表板,上面列出了如当前服务器请求、内存/CPU使用率、页面加载时间、网络流量和登录信息等指标。

图-22

4. 总结

在本文中,我们介绍了指标监控和告警系统的设计,讨论了数据收集、时间序列数据库、告警和可视化系统的高层级设计。我们还深入探讨了其中几个最重要的技术/组成部分:

•收集指标数据的拉模型和推模型。

•使用Kafka来扩展系统。

•在时间序列数据库之上添加缓存层。

•使用编码或者压缩算法来减小数据大小。

•过滤和合并告警,使得值班开发人员不会被收到的告警数量压垮。

系统经过了几轮迭代和优化,最终的设计如图-23所示。

图-23

第八十七篇:设计一个监控与告警系统 监控告警系统设计摘要 本文探讨了大规模监控告警系统的核心架构与技术实现。系统需要支持十万台服务器、每秒千万指标的实时采集,具备PB级存储能力和秒级查询响应。关键设计包括:分布式指标采集代理、高效时间序列数据库(TSDB)、流式告警计算引擎和智能异常检测算法。系统面临的主要挑战包括:海量数据的高效压缩(10:1压缩比)、低延迟查询优化(<1s)、告警准确性(误报率<1%)以及水平扩展能力。 阅读详情

相关推荐

HertzBeat面试内容整理

HertzBeat是一款开源的实时监控告警系统,采用无代理架构,通过标准协议直接采集数据,支持多种监控类型(网站、数据库、中间件等)。系统采用模块化设计,包含管理主控、采集器、调度器、存储和告警等核心组件,支持集群部署和水平扩展。HertzBeat提供Web界面管理,内置告警规则引擎和多种通知渠道,支持自定义监控模板。相比传统监控系统,HertzBeat具有部署简单、维护成本低等优势,适合中小规模监控场景,但在超大规模监控和生态丰富度方面存在一定局限。

不务正业的猿 273

基于Alertmanager设计告警降噪系统,成本低可落地

在Alertmanager的基础上制定了标签规范、告警分级降噪、分级抑制、告警合并,并扩展了未恢复告警、静默告警、告警历史

zhuanzhuantech的博客 1760

监控系统报警机制的设计与应用实践指南

本文还有配套的精品资源,点击获取 简介:本文介绍了在IT行业中,监控或控制系统中的报警输入/输出(I/O)和报警指示器的重要功能。详细探讨了报警输入/输出系统,报警指示器的概念、符号的使用以及文档结构,并强调了这些概念在自动化系统中的应用,比如在工业自动化、物联网(IoT)、楼宇自动化等领域。 1. 报警输入/输出系统的工作原理 1.1 系统概述 报警...

weixin_28840811的博客 2998

统一告警平台设计方案

功能概述:主动告警、被动告警、系统告警、项目性能告警、业务告警 告警指标:成功率、服务响应时间、longUrl、longSQL、OOM 、服务离线、健康检查、服务器性能、自动扩缩容,以及恢复

2384

系统设计面试:内幕指南【第一卷、第二卷】

《System Design Interview-An insider‘s guide》由Alex Xu撰写,旨在帮助读者应对系统设计面试中的挑战。书中提供了系统化的设计框架,涵盖从需求分析到技术选型的完整流程,并深入探讨了可扩展性设计、分布式系统组件等关键技术主题。通过场景化案例(如Twitter、Uber等),读者可以学习如何在实际业务中应用这些设计原则。此外,书中还强调了沟通技巧在面试中的重要性,帮助求职者更好地展示设计思路。本书适合准备系统设计面试的工程师、架构师以及对分布式系统感兴趣的开发人员。

flex8888的博客 1727

基于YOLO的车辆违停识别检测告警系统原理与实战

在计算机视觉与深度学习领域,目标检测技术已广泛应用于智慧交通、安防监控等场景。其中,车辆违停识别检测告警系统作为目标检测结合行为判别的典型应用,不仅要求准确识别车辆,还需对车辆是否进入禁停区域做出持续状态判断。系统通常基于YOLO系列(如YOLOv5/YOLOv8)构建检测模型,利用CSPDarknet骨干网络和PANet特征融合实现高效推理,同时通过禁停区域RoI划定、中心点判定及帧间IoU匹配等多帧确认机制,有效降低误报率。该方案兼顾速度与精度,能够实现7×24小时自动监测,适用于校园门口、消防通道、商

weixin_30607125的博客 352

关于告警系统的设计

参考:https://segmentfault.com/a/1190000003021919 什么是告警系统 当我们的服务器或某些业务指标出现差错时,告警系统可以反馈信息 为什么需要告警系统 减少人力监控,算是自动化运维的一种手段 这样不用时时盯着服务器,可以睡个稍微好一点的觉~ 告警系统的要求 1.每次收到告警提示之后可以立即评估影响的范围,并且每一个告警都需要做出分级响应; 2.使一些无关紧要...

5280

告别PS串口焦虑:深入解析AXI Uartlite IP核如何将ZYNQ PL任意引脚变成串口(从Vivado约束到驱动文件全解析)

本文深入解析AXI Uartlite IP核如何将ZYNQ PL任意引脚变成串口,从Vivado约束到驱动文件全解析。通过AXI Uartlite IP核,开发者可以突破PS端UART数量限制,实现高效串口通信。文章详细介绍了IP核架构、Vivado工程配置、驱动开发及调试技巧,帮助开发者快速掌握这一技术。

weixin_33736649的博客 468

17 设计指标监控和告警系统

在本文中,我们将探讨可扩展的指标监控和告警系统的设计。理解基础设施的状况对维持其可用性和可靠性至关重要。下图展示了一些市面上最流行的商用和开源的指标监控和告警服务。在本文中,我们介绍了指标监控和告警系统的设计,讨论了数据收集、时间序列数据库、告警和可视化系统的高层级设计。收集指标数据的拉模型和推模型。使用Kafka来扩展系统。在时间序列数据库之上添加缓存层。使用编码或者压缩算法来减小数据大小。过滤和合并告警,使得值班开发人员不会被收到的告警数量压垮。

小小博客 685

爬虫君子协议-robots.txt协议

文章目录一.定义二.用法 一.定义 robots协议是一种约定俗称的爬虫协议,由网站主人规定了该网站的哪些内容可以爬取,哪些内容不可以爬取,擅自爬取可能承担相关法律责任。之所以称之为君子协议,是因为防君子不防小人,该协议并没有用技术手段实现反爬,只是一个申明。 在网站根目录后输入/robots.txt后即可查看该网站的君子协议 例如访问https://www.douban.com/robots.txt可查看豆瓣网站的君子协议 查看结果如下 User-agent: * Disallow: /subject_

Henrik-Yao的博客 7614

Isaac Sim 6 利用Replicator实现高效语义分割与实例分割(实践指南5.10)

本文详细介绍了如何利用Isaac Sim 6的Replicator工具高效生成语义分割和实例分割数据集。通过虚拟环境自动标注,效率提升20倍以上,特别适用于农业机器人等计算机视觉项目。文章包含环境配置、场景构建、批量标注技巧及实例分割处理等实战指南,帮助开发者快速掌握合成数据生成技术。

weixin_42526415的博客 266

中国企业级监控告警系统实战:电话通知功能设计与Java实现

在当今企业IT运维和物联网应用中,实时监控系统健康状态并及时通知相关负责人已成为保障业务连续性的关键环节。当关键业务指标(如服务器CPU使用率、数据库连接数、库存量等)低于或超过预设阈值时,传统的邮件或短信通知方式可能无法满足紧急场景的需求。电话通知以其强制提醒的特性,成为高优先级告警的理想选择。

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 1968

【YOLO11改进 - 特征融合】利用Hyper-YOLO 的混合聚合网络(MANet)改进yolo11,提升基础网络的特征提取能力

【YOLO11改进 - 特征融合】利用Hyper-YOLO 的混合聚合网络(MANet)改进yolo11,提升基础网络的特征提取能力

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 905

Java面试:深入VR看房场景下的Spring Security、JWT安全与Prometheus、Grafana监控实践

本文以一场幽默又不失专业度的Java面试实录,深度剖析了VR看房业务场景下,Spring Security与JWT在用户认证授权中的应用,以及Prometheus和Grafana在系统监控与运维中的实践。文章通过面试官与“小润龙”的对话,由浅入深探讨技术细节,并提供详尽的技术知识点解析,助你全面掌握安全与监控的核心技能。

2303_76177839的博客 1013

vscode的launch:program ‘‘ does not exist

如图 一般是由于launch.json文件没有配置好的缘故。在右下角的ADD configuration如选第二个登录: 看到program这一栏,这一栏很重要,一般是选择你CMakelist,编译出来的可执行文件 看我CMakelist, 我生成的可执行文件是test_,所以路径可以这样输入: 我在之前cmake的时候已经有了test_这个文件了 然后就可以运...

狂小虎/Anthony Dave的博客 KuangXiaoHu's Blogs 5万+

华为OD机试真题2026双机位C卷 Python&JS 语言 实现【主次关联成环警告】

在ICT运维领域,现网运维工程师面向对设备上报的众多告警,往往需要筛选出最主要的告警优先处理,次等级的告警或许为同一个根因导致的告警,处理优先级会放后或者不处理,这样就诞生出主次关联告警的概念。给定一系列告警的主次关联关系,判断是否存在如下情况:

MISAYAONE的博客 269

面试鸭稳定性保障:如何确保大规模面试刷题系统的稳定运行

面试鸭是一个干净免费的面试刷题网站,采用React前端+Node后端+云开发全栈架构,致力于帮助程序员们高效准备面试、拿到满意offer。对于这样一个承载大量用户并发访问的面试刷题平台,系统稳定性是用户体验的核心保障。本文将深入探讨面试鸭的稳定性保障方案,揭示其如何通过架构设计、监控机制和运维策略确保大规模系统的可靠运行。 ## 系统架构与稳定性设计 面试鸭采用前后端分离架构,前端使用Reac

gitblog_00426的博客 882

用 ABAP 驾驭 OAuth 2.0:从 Authorization Code 到 SAML Bearer 的全栈落地指南

ABAP平台OAuth 2.0客户端开发实践 本文为SAP开发者详细解析ABAP平台内置OAuth 2.0客户端的使用方法,涵盖四种授权流的最佳实践: 授权流选择: Authorization Code:适用于用户交互场景 SAML 2.0 Bearer:适合已有SAML体系的企业 Client Credentials:系统间通信 Password Credentials:过渡方案(不推荐) 配置流程: 通过SE80定义Client Profile 使用SOAUTH2_CLIENT/OA2C_CONFIG配

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 309

Grafana:Java海量数据处理监控之道

在当今大数据时代,Java作为主流的开发语言之一,在处理海量数据时面临着诸多挑战。例如,一个大型电商平台在处理用户行为数据时,需要实时监控和分析用户访问量、交易量等关键指标。然而,随着数据量的激增,传统的监控工具已经无法满足需求,系统性能和稳定性面临巨大考验。这时,引入Grafana这样的可视化监控平台显得尤为重要。Grafana概述:随着数据量的不断增长,如何高效地监控和分析海量数据成为Java领域的一大挑战。

JavaCodePro的博客 1094

2026 AI浏览器Agent终极对比:BrowserAct、agentBrowser、PP-Browser 谁更适合落地?(安装+实战+场景全覆盖)

1.不要盲目追求最新框架:很多人跟风用agentBrowser,结果业务是多步骤复杂办公流程,反而不如BrowserAct稳定;2.风控场景优先PP-Browser:但凡需要登录账号、频繁访问正规平台,无脑选PP-Browser,能避开99%的封禁问题;3.AI批量解析优先agentBrowser:做知识库爬取、网页内容总结、批量问答,省Token就是省成本,长期使用性价比碾压另外两者;4.个人开发调试优先BrowserAct:容错高、日志全、调试简单,新手上手最快,不容易报错翻车。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 335

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

全网最全,部署一套完整的 Prometheus+Grafana 智能监控告警系统

Prometheus的每个exporter都会是一个目标,它们可以上报不同的监控信息,比如机器状态,或者mysql性能等等,不同语言sdk也会是一个目标,它们会上报你自定义的业务监控信息。Prometheus作为一个中间点,而Grafana作为可视化展示,后面的exporter作为监控,exporter将需要获取的数据获取并连接到Prometheus,而Prometheus连接到Grafana,直观展示被监控者状态;这个页面给出的是最新版本的安装命令,右上角可以选择切换其他版本的安装命令。

芋艿V 56

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

面试官:你项目是如何保证高可用的?

项目的高可用、高并发和高扩展是当前开发中必须追求的三大目标,因此也是面试中经常被问到的内容,所以我们今天就来看看,如何才能保证项目的高可用性呢?

磊哥聊Java 900

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java面试突击:从八股文背诵到场景化问题解决能力提升

Java并发编程和JVM性能调优是后端开发的核心技术基础。并发编程通过锁机制、线程池等技术解决资源竞争问题,保证系统高可用性;JVM则负责内存管理和垃圾回收,直接影响应用性能。掌握这些原理能够帮助开发者在高并发场景下设计稳定系统,快速定位线上故障。在实际工程实践中,面试官更关注候选人将技术知识转化为解决实际问题的能力,例如如何设计秒杀系统或排查Full GC频繁问题。本文基于Java面试高频考点,提供从知识点串联到场景化应用的实战突击方法,帮助开发者提升问题诊断和系统设计能力。

weixin_30621959的博客 365

成大事嵌入式面试题系列10:Bootloader 与 OTA 升级面试题(第4篇)| 测试与可观测性(5题精讲)

本文重点讲解了车载/工业现场OTA升级的质量保障要点,包括测试覆盖、可观测性设计和特殊环境要求。核心内容包括:1)车载场景需支持维护窗口升级、断电保护和告警工单系统;2)测试要覆盖断电、网络中断、弱网等异常场景;3)需设计成功率、下载时长等关键监控指标。代码示例展示了断电检测、弱网模拟等具体实现方法,为技术面试提供了实用参考。

成大事的博客 734
上一篇: 提示词工程教程(五):道德考量
下一篇: 提示词工程教程(六):评估提示词的有效性
橙狮科技
博客等级 码龄6年 1163粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值