【Prometheus01】可观测性系统之Prometheus简介、优缺点对比、组件介绍、数据采集流程、TSDB简介
监控工具对比、黑盒监控与盒白盒监控、Kubernetes监控简介
监控简介:
监控的价值:
-
长期趋势分析:通过对监控样本数据的持续收集和统计,对监控指标进行长期趋势分析。例如,通过对磁盘空间增长率的判断,我们可以提前预测在未来什么时间节点上需要对资源进行扩容。
-
对照分析:两个版本的系统运行资源使用情况的差异如何?在不同容量情况下系统的并发和负载变化如何?通过监控能够方便的对系统进行跟踪和比较。
-
告警:当系统出现或者即将出现故障时,监控系统需要迅速反应并通知管理员,从而能够对问题进行快速的处理或者提前预防问题的发生,避免出现对业务的影响。
-
故障分析与定位:当问题发生后,需要对问题进行调查和处理。通过对不同监控监控以及历史数据的分析,能够找到并解决根源问题。
-
数据可视化:通过可视化仪表盘能够直接获取系统的运行状态、资源使用情况、以及服务运行状态等直观的信息。
监控的类型:
-
通过业务监控系统,全面掌握业务环境的运行状态,通过黑盒监控能够第一时间发现业务故障并通过告警通告运维人员进行紧急恢复,通过白盒监控能够提前预知业务瓶颈,从而将业务影响降到最低。
-
黑盒监控,关注的是时时的状态,一般都是正在发生的事件,比如nginx web界面打开的是界面报错503、API接口超时、磁盘IO异常等,即黑盒监控重点在于能对当前正在发生的故障进行发现及发送通知告警。
-
白盒监控,关注的是原因,也就是系统内部暴露的一些指标数据,比如nginx 后端服务器的响应时长、磁盘的I/O负载值等。
-
-
监控系统需要能够有效的支持白盒监控和黑盒监控,通过白盒能够了解其内部的实际运行状态,以及对监控指标的观察能够预判可能出现的潜在问题,从而对潜在的不确定因素进行提前优化并避免问题的发生,而通过黑盒监控,比如常见的如HTTP探针、TCP探针等,可以在系统或者服务在发生故障时能够快速通知相关的人员进行处理。
常见的监控工具:
Cacti:基于基于LAMP平台展现的网络流量监测及分析工具,https://www.cacti.net
Nagios:用来监视系统和网络的开源应用软件,利用其众多的插件实现对本机和远端服务的监控,https://www.nagios.org
Open-falcon: 小米公司开源出来的监控软件open-falcon(猎鹰),监控能力和性能较强,https://www.open-falcon.org
Nightingale:夜莺, 由滴滴基于open-falcon二次开发后开源出来的分布式监控系统,https://n9e.github.io
Zabbix:老牌的开源监控软件,可横向扩展、自定义监控项、支持多种监控方式、可监控网络与各种服务等,Zabbix:企业级开源监控解决方案
prometheus简介:CNCF毕业的云原生监控系统,对k8s的容器有良好的兼容性,https://prometheus简介.io
商业监控:
-
监控宝:https://www.jiankongbao.com
-
听云:https://www.tingyun.com
prometheus简介简介、优缺点对比、组件介绍;
prometheus简介简介
prometheus简介是基于go语言开发的一套开源的监控、报警和时间序列数据库的组合,是由SoundCloud公司开发(2012年)的开源监控系统,prometheus简介于2016年加入CNCF(Cloud Native Computing Foundation,云原生计算基金会),2018年8月9日prometheus简介成为CNCF继kubernetes之后毕业的第二个项目,prometheus简介在容器和微服务领域中得到了广泛的应用,其主要优缺点如下:
-
使用key-value的多维度(多个角度,多个层面,多个方面)格式保存数据
-
数据不使用MySQL这样的传统数据库,而是使用时序数据库,目前是使用的TSDB
-
支持第三方dashboard实现更绚丽的图形界面,如grafana(Grafana 2.5.0版本及以上)
-
组件模块化
-
不需要依赖存储,数据可以本地保存也可以远程保存
-
平均每个采样点仅占3.5 bytes,且一个prometheus简介 server可以处理数百万级别的的metrics指标数据。 支持服务自动化发现(基于consul等方式动态发现被监控的目标服务)
-
强大的数据查询语句功(PromQL,prometheus简介 Query Language)
-
数据可以直接进行算术运算
-
易于横向伸缩
-
众多官方和第三方的exporter(“数据”导出器)实现不同的指标数据收集
prometheus简介 架构图:
-
prometheus简介 server:主服务,接受外部http请求、收集指标数据、存储指标数据与查询指标数据等。
-
prometheus简介 targets: 静态发现目标后执行指标数据抓取。
-
service discovery:动态发现目标后执行数据抓取。
-
prometheus简介 alerting:调用alertmanager组件实现报警通知。
-
push gateway:数据收集代理服务器(类似于zabbix proxy但仅限于client主动push数据至push gateway)。
-
data visualization and export:数据可视化与数据导出(浏览器或其它client)。
kubernetes监控简介
容器监控的实现方对比虚拟机或者物理机来说比大的区别,比如容器在k8s环境中可以任意横向扩容与缩容,那么就需要监控服务能够自动对新创建的容器进行监控,当容器删除后又能够及时的从监控服务中删除,而传统的zabbix的监控方式需要在每一个容器中安装启动agent,并且在容器自动发现注册及模板关联方面并没有比较好的实现方式。
数据采集流程、TSDB简介
prometheus简介数据采集流程
基于静态配置文件或动态发现获取目标
-
向目标URL发起http/https请求
-
目标接受请求并返回指标数据
-
prometheus简介 server接受并数据并对比告警规则,如果触发告警则进一步执行告警动作并存储数据,不触发告警则只进行数据存储
-
grafana进行数据可视化
TSDB简介及特点
TSDB:Time Series Database , 简称 TSDB,存放时间序列数据的数据库
-
时间序列数据具有不变性、唯一性和按照时间排序的特性。
-
持续周期性写入数据、高并发吞吐:每间隔一段时间,就会写入成千上万的节点的指标数据。
-
写多读少:prometheus简介每间隔15s就会采集数十万或更多指标数据,但通常只查看最近比较重要的指标数据。
-
数据按照时间排列:每次收集的指标数据,写入时都是按照当前时间往后进行写入,不会覆盖历史数据。
-
数据量大:历史数据会有数百G甚至数百T或更多。
-
时效性:只保留最近一段时间的数据,超出时效的数据会被删除。
-
冷热数据分明:通常只查看最近的热数据,以往的冷数据很少查看。
TSDB简介:
-
prometheus简介有着非常高效的时间序列数据存储方法,每个采样数据仅仅占用3.5byte左右空间,上百万条时间序列,30秒间隔,保留60天,大概200多G空间(引用官方资料)。
-
阿里云时序时空数据库TSDB_工业互联网_OpenTSDB_influxDB_物联网监控_工业监控_SIS_APM-阿里云 #阿里云的商业T时序数据库产品
-
默认情况下,prometheus简介将采集到的数据存储在本地的TSDB数据库中,路径默认为prometheus简介安装目录的data目录,数据写入过程为先把数据写入wal日志并放在内存,然后2小时后将内存数据保存至一个新的block块,同时再把新采集的数据写入内存并在2小时后再保存至一个新的block块,以此类推。
-
prometheus简介先将采集的指标数据保存到内存的chunk中,chunk是prometheus简介存储数据的最基本单元。
-
每间隔两个小时,将当前内存的多个chunk统一保存至一个block中并进行数据合并、压缩、并生成元数据文件index、meta.json和tombstones
TSDB-block特性
block会压缩、合并历史数据块,以及删除过期的块,随着压缩、合并,block的数量会减少,在压缩过程中会发生三件事:定期执行压缩、合并小的block到大的block、清理过期的块,每个块有4部分组成:
~# tree /apps/prometheus简介/data/01FQNCYZ0BPFA8AQDDZM1C5PRN/
/apps/prometheus简介/data/01FQNCYZ0BPFA8AQDDZM1C5PRN/
├── chunks
│ └── 000001 #数据目录,每个大小为512MB超过会被切分为多个
├── index #索引文件,记录存储的数据的索引信息,通过文件内的几个表来查找时序数据
├── meta.json #block元数据信息,包含了样本数、采集数据数据的起始时间、压缩历史
└── tombstones #逻辑数据,主要记载删除记录和标记要删除的内容,删除标记,可在查询块时排除样本。
TSDB-block简介
每个block为一个data目录中以01开头的存储目录,如下:
~# ls -l /apps/prometheus简介/data/
total 4
drwxr-xr-x 3 root root 68 Dec 24 05:00 01FQNCYZ0BPFA8AQDDZM1C5PRN #block
drwxr-xr-x 3 root root 68 Dec 27 09:10 01FQXJESTQXVBEPM857SF9XBX7 #block
drwxr-xr-x 3 root root 68 Dec 28 07:20 01FQZYJJ605MEQ7KHBBM09PBVH #block
drwxr-xr-x 3 root root 68 Dec 28 07:20 01FQZYJJABE4JGM85TXJ25WESQ
#block
相关文章:
【Prometheus01】可观测性系统之Prometheus简介、优缺点对比、组件介绍、数据采集流程、TSDB简介
监控工具对比、黑盒监控与盒白盒监控、Kubernetes监控简介 监控简介: 监控的价值: 长期趋势分析:通过对监控样本数据的持续收集和统计,对监控指标进行长期趋势分析。例如,通过对磁盘空间增长率的判断,我们…...
Postman下载安装及简单入门
一.Postman简介 Postman是一款API测试工具,可以帮助开发、测试人员发送HTTP请求,与各种API进行交互,并分析响应 二.下载与安装 访问Postman官网(https://www.postman.com/),下载适…...
记第一次跟踪seatunnel的任务运行过程三——解析配置的具体方法getLogicalDag
前绪 记第一次跟踪seatunnel的任务运行过程二——ClientJobExecutionEnvironment的execture方法 从这里开始,就是使用seatunnel-2.3.9的源码了。前面部分没有变化,2.3.X版本都是通用的。 建议打开源码,边读文章,边阅读源码 正文…...
Maven 的核心包
由于前端项目不是核心,阅读 nexus-public 源代码似乎绕远路了。nexus-oss 社区版主要就是集成 maven 的上传包、认证、包解析、包存储这几个核心功能,前端实现重新可以使用新的现代前端工具来提高生产力。故重新疏理一下 maven 的核心机制,即…...
上位机数据可视化:使用QtCharts绘制波形图
工程配置 CMake文件 find_package(Qt5 COMPONENTS Charts REQUIRED)target_link_libraries(zhd-desktop PRIVATE Qt5::Charts)包含头文件以及名称空间(这个很重要,没有包含名称空间编译器会提示找不到相关的类型) #include <QtCharts&g…...
制造业数字化转型,汽车装备制造企业数字化转型案例,智能制造数字化传统制造业数字化制造业数字化转型案例
《某制造业企业信息化整体解决方案》PPT展示了一个汽车装备企业的整体信息化解决方案,阐述了该企业的业务特点和现状,主要包括按订单生产、多级计划和产品跟踪等,分析了信息化建设的主要困难,如信息管理手工化、过程数据追溯困难、…...
网络安全常识科普(百问百答)
汪乙己一到店,所有喝酒的人便都看着他笑,有的叫道,“汪乙己,你又监控员工隐私了!”他不回答,对柜里说,“来两个fofa。”便排出三个比特币。他们又故意的高声嚷道,“你一定又在电报群…...
P2512糖果传递 P4447分组 P1080国王游戏 P4053建筑抢修
P2512 [HAOI2008] 糖果传递 题目描述 有 n n n 个小朋友坐成一圈,每人有 a i a_i ai 个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为 1 1 1。 输入格式 小朋友个数 n n n,下面 n n n 行 a i a_i ai。 输出格式 求使所…...
SpringMVC(七)数据校验+VO++脱敏
目录 一 基础原理 1 先将数据校验的依赖导入 2 在JavaBean中编写校验注解 3 使用Valid告诉SpringMVC进行校验(校验不通过,方法通知执行) 4 在Valid参数后面加上一个BindingResult参数,获取校验结果。 二 改进方案 1 没写全…...
使用OpenResty(基于Nginx和Lua)优化Web服务性能
引言 1.1 OpenResty简介 OpenResty 是一个基于 Nginx 和 Lua 的高性能 Web 应用平台。它通过将 Lua 脚本嵌入到 Nginx 中,提供了强大的动态处理能力,适用于构建高性能的 Web 服务、API 网关、动态内容生成等场景。 1.2 Nginx与Lua结合的优势 高性能:Nginx 本身就是一个高…...
32、构造函数
1、用构造函数反复创建多个相同结果的对象 问题 如果想反复创建多个相同结构,但是内容不同的对象时,用{}创建会代码重复,及其不便于维护! 解决 今后只要想反复创建同一类型的多个相同结构不同内容的对象时,都用构造函…...
蓝桥与力扣刷题(蓝桥 星期计算)
题目:已知今天是星期六,请问 20^22 天后是星期几? 注意用数字 1 到 7 表示星期一到星期日。 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 解题思路+代码: 代码࿱…...
【leetcode hot 100 230】二叉搜索树中第K小的元素
解法一:从小到大输出到list中,取list[k-1]就是第k小的元素 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val;…...
六种最新优化算法(TOC、MSO、AE、DOA、GOA、OX)求解多个无人机协同路径规划(可以自定义无人机数量及起始点),MATLAB代码
一、算法简介 (一)阿尔法进化(Alpha Evolution,AE)算法 阿尔法进化(Alpha Evolution,AE)算法是2024年提出的一种新型进化算法,其核心在于通过自适应基向量和随机步长的…...
python离线安装
Python Releases for Windows | Python.org 下载包地址widows一般是64bit的包 下载完成后双击,在弹出的首个页面会看到下面的图 第一步:建议手动安装 第二步:一定要勾选把版本加入到Path路径 然后就是无脑下一步,到这一步就可…...
【每日学点HarmonyOS Next知识】状态栏字体、生命周期、自定义对话框屏幕中间、透明度、tab居中
1、HarmonyOS 单页面如何控制状态栏字体颜色? 状态栏字体颜色可通过设置statusBarContentColor修改,参考文档如下: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5 参考代码: import…...
C# GeneticSharp包
可以直接从nuget安装GeneticSharp包 GeneticSharp 遗传算法类库 GeneticSharp 是什么 GeneticSharp 是一个C#的遗传算法类库, 遗传算法Java著名的JMetal, Python也有JMetalPy和PyMoo, C#相对差一截, 稍微有名的是GeneticSharp库. GeneticSharp 的弱点: 不支持多目标优化没…...
大模型中的常用名词介绍八:【特征与数据处理、伦理与公平性等】【建议收藏】
本文总结了大模型领域有关特征与数据处理、伦理与公平性等其他部分的名词,并解释其含义。跳出浩如烟海的大模型知识圈层,从概念上理清大模型的基础脉络! 序号模块分组说明快捷访问1 模型架构与基础概念 介绍了【模型架构与基础概念】相关的常…...
HTML5 drag API实现列表拖拽排序
拖拽API(Drag and Drop API)是HTML5提供的一组功能,使得在网页上实现拖放操作变得更加简单和强大。这个API允许开发者为网页元素添加拖拽功能,用户可以通过鼠标将元素拖动并放置到指定的目标区域。 事件类型 dragstart࿱…...
HTTPS建立连接过程
一、混合加密 通过混合加密的方式可以保证信息的机密性,解决了窃听的风险。 HTTPS采用的是对称加密和非对称加密结合的混合加密方式: (1) 在通信建立前采用非对称加密的方式交换会话密钥,后续就不再使用非对称加密。 &…...
deepseek GRPO算法保姆级讲解(数学原理+源码解析+案例实战)
文章目录 什么是GRPO群组形成(Group Formation):让大模型创建多种解决方案偏好学习(Preference Learning):让大模型理解何为好的解答组内相对优势 优化(optimization): 让大模型从经验中学习(learning from experience)目标函数 GRPO算法的伪码表示GRPO算法的局限与…...
【WEB APIs】DOM-节点操作
1. 日期对象 1.1 实例化 <script>// 实例化// 1.得到当前时间const date new Date()console.log(date);// 2.得到指定时间const date1 new Date(2025-3-14)console.log((date1));</script> 1.2 日期对象方法 千万不要忘记加小括号 // 获得日期对象const date2 …...
VSTO(C#)Excel开发7:自定义任务窗格
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
Qemu 详解与 ARM 虚拟机搭建指南
1. Qemu 是什么? Qemu(Quick Emulator)是一款开源的机器模拟器和虚拟化工具,支持多种硬件架构(如 x86、ARM、PowerPC 等)。它的核心功能包括: 动态指令翻译:将不同架构的指令实时翻…...
Windows编译Flash-attention模块
博主的环境配置:windows11操作系统,cuda11.8.r11.8, cudnn8.9.7, git2.47.1,cmake4.0.0-rc4,ninja1.12.1, vs_buildTools17.4.21, cl19.34.31948, torch2.3.1 编译flash-attention的环境依赖如下图 #mermaid-svg-SZBhH41EsJGfu…...
《Python深度学习》第三讲:神经网络
在前面的课程里,我们已经了解了深度学习的数学基础,也用一个简单的例子展示了神经网络的强大能力。本讲我们要更深入地探讨神经网络的结构、训练过程,以及如何用它解决实际问题。 3.1 神经网络剖析 先来聊聊神经网络的核心组件:层…...
编程题《牛牛的链表删除》的python可以用非链表的方式
描述 牛牛从键盘输入了一个长度为 n 的数组,把这个数组转换成链表然后把链表中所有值是 x 的节点都删除。 输入描述: 第一行输入两个正整数 n 和 x 表示数组的长度和要删除的链表节点值 x 。 第二行输入 n 个正整数表示数组中每个元素的值。 输出描述&am…...
传统RAG vs 知识图谱:大模型时代的知识管理革命
引言:为什么需要突破传统RAG? 在大模型应用落地的浪潮中,检索增强生成(RAG)技术通过连接外部知识库,有效缓解了模型的幻觉问题。然而,当面对复杂关系推理、多文档关联分析等场景时,…...
【Go语言圣经2.6】
目标 概念 GOPATH模型 GOPATH:GOPATH 是一个环境变量,指明 Go 代码的工作区路径。工作区通常包含三个目录: src:存放源代码,按照导入路径组织。例如,包 gopl.io/ch2/tempconv 应存放在 $GOPATH/src/gopl.i…...
多时间尺度的配电网深度强化学习无功优化策略的Python示例代码框架
以下是一个简单的多时间尺度的配电网深度强化学习无功优化策略的Python示例代码框架,用于帮助你理解如何使用深度强化学习(以深度Q网络 DQN 为例)来处理配电网的无功优化问题。在实际应用中,你可能需要根据具体的配电网模型和需求…...
0CTF 2016 piapiapia 1
#源码泄露 #代码审计 #反序列化字符逃逸 #strlen长度过滤数组绕过 www.zip 得到源码 看到这里有flag ,猜测服务端docker的主机里,$flag变量应该存的就是我们要的flag。 于是,我们的目的就是读取config.php 利用思路 这里存在 任意文件读取…...
ArcGIS Pro将有文字标注底图切换为无标注底图(在线地图图源)
今天介绍一下在ArcGIS Pro将有标注的地形底图换成无标注的底图。 大家在这项目底图时候会经常调用ArcGIS Pro自带的地形图,但是这个地形图自带是有注记的,如下图。 如何更改,才可以调用无文字注记的呢? 对于一个已经切好图的有注记…...
股指期货有卖不出去的时候吗?
在股指期货的交易世界里,很多人都有这样的疑问:股指期货会不会有卖不出去的时候呢?答案是会的,下面咱们就来详细唠唠为啥会出现这种情况。 市场极端行情下难以卖出 1.跌停限制:股指期货和股票一样,也有涨…...
NPM 常用操作指令大全
NPM(Node Package Manager)是 Node.js 默认的包管理工具,主要用于管理 JavaScript 项目的依赖包。以下是常用的 NPM 命令,涵盖安装、卸载、更新、查看等操作。 📌 1. NPM 初始化 npm init 逐步询问项目信息ÿ…...
Mysql与ElasticSearch间的数据同步场景模拟
一、场景简介 现有酒店管理与酒店搜索预定两个分离的微服务模块,为了数据的安全性我们在就带你管理模块通过Mysql进行crud,为了搜索的高效和质量在搜索预定模块我们采用了ElasticSearch搜索引擎(视作一种NoSQL 数据库),…...
Qt-D指针与Q指针的设计哲学
文章目录 前言PIMLP与二进制兼容性D指针Q指针优化d指针继承Q_D和Q_Q 前言 在探索Qt源码的过程中会看到类的成员有一个d指针,d指针类型是一个private的类,这种设计模式称为PIMPL(pointer to implementation),本文根据Q…...
安装配置Anaconda,配置VSCode
文章目录 Anaconda介绍下载Anaconda安装Anaconda换源创建一个新环境conda常用命令 VSCode环境配置 记录一下笔者收集的一些资料,不喜勿喷。 Anaconda介绍 Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管…...
迪威 3D 模型发布系统:制造业产品展示革新利器
在竞争激烈的制造业领域,如何将产品全方位、直观地呈现给客户,成为企业脱颖而出的关键。传统的产品展示方式往往受限于平面资料或有限的实物展示,难以让客户深入了解产品的复杂结构与精妙细节。迪威 3D 模型发布系统的问世,为制造…...
Matlab 汽车振动多自由度非线性悬挂系统和参数研究
1、内容简介 略 Matlab 169-汽车振动多自由度非线性悬挂系统和参数研究 可以交流、咨询、答疑 2、内容说明 略 第二章 汽车模型建立 2.1 汽车悬架系统概述 2.1.1 悬架系统的结构和功能 2.1.2 悬架分类 2.2 四分之一车辆模型 对于车辆动力学,一般都是研究其悬…...
编程题-第k个语法符号(中等)
题目: 我们构建了一个包含 n 行( 索引从 1 开始 )的表。首先在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。 例如,对于 n 3 ,第 1 行是 0 ,第 2 行是 01 ,第3行…...
vscode打不开
Bug:窗口意外终止(原因:“launch-failed”,代码:“65" 对此造成的不便,我们深表歉意。可以打开新的空窗口以重新启动) 解决方法: 移情别恋:VS Code打开闪退并报‘launch-failed‘ code:‘65‘ 窗口意外终止(原因…...
使用生成对抗网络(GAN)进行人脸老化生成的Python示例
以下是一个使用生成对抗网络(GAN)进行人脸老化生成的Python示例,我们将使用PyTorch库来实现。GAN由生成器和判别器两部分组成,生成器尝试生成逼真的老化人脸图像,判别器则尝试区分生成的图像和真实的老化人脸图像。 步…...
202503执行jmeter压测数据库(ScyllaDB,redis,lindorm,Mysql)
一、Mysql 1 、 准备MySQL 连接内容 2 、 下载连接jar包 准备 mysql-connector-java-5.1.49.jar 放到 D:\apache-jmeter-5.6.3\lib\ext 目录下面; 3 、 启动jmeter ,配置脚本 添加线程组---》JDBC Connection Configuration---》JDBC Request---》查看结果树。 1)测…...
Uniapp当中的scroll-view滚动条不出现或者触底刷新事件不触发
一、未正确设置容器高度 问题描述 scroll-view 未设置明确高度或高度值无效,导致无法形成有效滚动区域。 解决方案 • 使用行内样式直接设置 height(如 style"height: 500rpx;"),避免类名样式被覆盖。 • 动态计算高度…...
3.16学习总结
学习了Java的知识点 基本数据类型 byte占1字节,储存范围-128~127 short占2字节,储存范围-32768~32767 int占4字节,储存范围-2147483648~2147483647 long占8字节,储存范围是-9223372036854775808~9223372036854775807 float占…...
206. 反转链表
目录 一、题目二、思路2.1 解题思路2.2 代码尝试2.3 疑难问题2.4 AI复盘 三、解法四、收获4.1 心得4.2 举一反三 一、题目 二、思路 2.1 解题思路 需要有头尾指针,然后又觉得可以用递归 2.2 代码尝试 class Solution { public:ListNode* reverseList(ListNode* h…...
音视频缓存数学模型
2024年8月的笔记 音视频缓存数学模型 - Wesley’s Blog 播放器作为消费者,缓存作为生产者。 进入缓冲一次 设消费者速率为v1,生产者为v2,视频长度为l,x为生产者至少距离消费者多远才能保证在播完视频前两者重合。实际上就是一个…...
priority_queue模拟实现
目录 介绍 模拟实现 无参构造函数 迭代器构造 push插入 pop删除 top返回队首元素 返回队列元素个数 判空 仿函数 补充:反向迭代器 模拟实现反向迭代器 构造和析构 重载和-- 解引用*和地址访问-> ! 反向迭代器在容器中实现 补充练习 数组中第…...
ChatGPT、DeepSeek、Grok:AI 语言模型的差异与应用场景分析
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 1. 引言 人工智能(AI)语言模型正在快速发展,ChatGPT(OpenAI)、DeepSe…...
Nginx 刷新后 404 的原因与解决方案
文章目录 Nginx 刷新后 404 的原因与解决方案静态资源路径问题(单页应用 SPA)解决方案:使用 try_files Nginx 资源路径 (root 或 alias) 配置错误示例:正确的 root配置 浏览器缓存或 Nginx 缓存影响清除浏览器缓存给静态资源加版本…...