大语言模型需要的可观测性数据的关联方式
可观测性数据的关联方式及其优缺点
随着现代分布式架构和微服务的普及,可观测性(Observability)已经成为确保系统健康、排查故障、优化性能的重要组成部分。有效的可观测性数据关联方式不仅能够帮助我们实时监控系统的运行状态,还能在故障发生时迅速定位问题根源。本文将探讨不同的可观测性数据关联方式,重点梳理什么样的关联方式才能更好的与大模型结合。
可观测性数据与大模型结合的矛盾点在于:
- 可观测性数据属于海量
- 大模型的上下文有限制无法直接分析海量的可观测性数据
什么是可观测性数据关联?
可观测性数据关联是指将系统中不同来源和维度的可观测性数据(如日志、指标、Trace)关联起来,形成一个完整的监控视图。通过这种关联,我们能够更全面地理解系统的行为和性能,尤其在故障排查时,能够实现更加精准的定位。数据关联方式的选择直接影响故障排查的效率、准确性以及可视化效果。
可观测性数据关联的目的
在讨论具体的可观测性数据关联方式之前,我们首先需要明确为什么要进行数据关联。数据关联的目的是为了优化故障排查过程、提高系统监控的效率,并帮助用户从多维度获取对系统健康的全面理解。具体来说,数据关联的目的包括:
1.提高故障诊断的准确性和效率
系统中的各个组件和服务彼此依赖,问题往往是多因素、多维度的。单纯依赖某一维度的数据(如单一的日志或单一的指标)难以全面展现问题的全貌,容易导致诊断错误或延误。通过关联不同的数据源(如日志、Trace、指标等),我们可以更准确地定位问题所在,并缩短故障排查的时间。
2.减少数据噪音
系统运行中产生的数据量巨大,尤其是在大规模分布式系统中。没有合理的数据关联,可能会导致用户面对大量的无关数据,从而被“信息过载”淹没。数据关联有助于筛选出关键的、相关的事件或行为,帮助用户专注于最重要的信息,减少不必要的噪音。
3.提高系统的可理解性
对于复杂的分布式系统,理解每个组件和服务的行为变得异常困难。通过数据关联,用户可以跨多个维度(如服务、接口、业务等)对系统的状态进行统一视图的展示,从而增强系统的可理解性。这使得开发人员、运维人员和其他利益相关者可以更加直观地看到系统的工作情况以及潜在的问题。
4.支持根因分析与问题追溯
一旦发生故障或性能问题,快速准确地进行根因分析是至关重要的。数据关联能够帮助用户从多个层次上回溯问题的发生过程,从而帮助确定故障的根本原因。这是特别重要的,尤其是在微服务架构中,问题可能是由多个服务交互引发的,而不仅仅是某个服务本身的问题。
大语言模型与可观测性数据关联
大语言模型具备智能推理能力,在可观测性领域的根因分析和智能诊断等功能中,自然而然地引发了将大模型应用于故障根因定位的想法。然而,考虑到大模型的上下文限制(通常为128K),无法将一段时间内所有的 Trace、Metrics、Logs 等数据完整提交给模型进行分析。因此,大模型无法直接从所有数据中提取故障特征。
在可观测性数据中,Trace、Metrics、Logs 和 Events 各自具有独特的价值。在实际应用中,我们不能仅依赖单一数据源,而忽视其他数据,否则可能会遗漏关键的故障线索。
因此,合理组织和关联这些可观测性数据,并进行综合分析,以提取出有价值的故障特征,是实现大模型故障分析的前提。
常见的可观测性数据关联方式
1.链路级别(Trace)数据关联
链路数据关联是目前最常见的关联方式之一。它通过跟踪请求在微服务架构中的全过程,捕获每个服务的调用链路信息。每个请求会生成一个 Trace,每个 Trace 包含多个 Span(即单个服务的调用记录),这些 Span 按顺序构成完整的调用链。在日志中,通过记录 traceId 和 spanId,实现 trace 与日志的关联,同时通过 timestamp 和主机、容器的标签(label)实现 trace、日志、指标(metrics)和事件(event)的关联。
-
优点:
■ 精准定位: 通过完整的调用链路,能够清晰展示服务之间的调用关系,有助于快速定位性能瓶颈和故障源。
■ 端到端可视化: 提供全链路视图,帮助用户了解跨多个服务的调用流,尤其是在微服务架构中,能够直观呈现各服务的健康状况。
■ 支持跨服务分析: Trace 数据能够跨多个服务,具备跨系统、跨平台的故障排查能力。 -
缺点:
■ 高资源消耗: 生成和存储 Trace 数据需要较高的资源消耗,尤其是在大量并发请求时,可能会对数据存储和处理造成较大压力。
■ 复杂性: 在服务间调用关系复杂的情况下,Trace 数据可能包含过多信息,导致分析难度增加。很多运维人员也反馈看不懂Trace的具体span数据,特别是慢方法,不知道如何根据Trace信息指导接下来的运维动作。
■ 数据噪声: 某些不相关的调用链可能增加数据噪声,影响故障定位的准确性。
大模型的针对链路级别trace用法
通过关联 Trace、日志、指标(metrics)和事件(event),异常相关信息可以提交给大模型进行分析。大模型能够对这些异常数据进行深入分析,例如,针对一段错误日志,提供日志的分析总结;对于异常的 Trace,分析出具体异常的 Span 等信息。
尽管大模型在分析异常数据方面已经对用户提供了极大的帮助,但它并未完全解决用户的排障难题。在如此大量的 Trace 和日志数据中,用户为何要分析某一条异常的 Trace 或日志,这一选择的过程往往充满了随机性。而被分析的 Trace 或日志是否具有代表性呢?
如果连续分析的几条 Trace 或日志都揭示了相同的故障原因,这是否就足以说明问题?在日常工作中,许多用户可能会直接根据这些分析结果进行后续的运维动作。
这种排障方法在没有统计信息支持的情况下,确实有一定的成功概率,但我们认为,这并不是最佳的方案。
此种大模型的用法适合在故障已经定界到具体的服务或者接口之后,再进一步结合此种数据重点分析根因。
2.服务级别数据关联
服务级别关联主要关注服务本身的健康状况和性能,服务的定义可以类比为 Kubernetes 中的 Service。它通过聚合同一实例中不同接口的指标、日志和 Trace 信息,形成以服务为单位的可观测性视图。这种方式将系统中的每个服务视为独立实体,帮助用户全面了解服务的整体健康状况。
-
优点:
■ 简洁直观:用户可以通过服务级别的指标(如 CPU 使用率、内存占用率、错误率等)快速了解各个服务的状态。
■ 高效监控:与链路级数据相比,服务级数据聚合简洁,减少了数据存储和处理负担。它是很多可观测性平台的入口,帮助用户快速识别故障范围,从而确定故障分析的切入点。
■ 易于扩展:随着服务数量的增加,可以方便地扩展和整合新的服务监控。 -
缺点:
■ 噪音和关键信息丢失:在实际开发中,一个服务可能会提供多个接口,且接口作用不一。若按照服务的不同接口进行统计,可能会引入噪音或导致关键信息被淹没。例如,某个接口的调用量很少,而另一个接口调用量很大。当调用量少的接口发生故障时,由于大接口占据统计数据的主要部分,调用量少的接口故障可能会被忽略。
大模型的针对服务级别数据关联的用法
服务级别的统计数据可以直接提交给大模型进行分析,大模型能够基于这些数据识别疑似故障的服务节点。然而,这一过程中通过提示词引导大模型存在尺度把握的问题,即如何引导大模型判断服务节点存在疑似故障。
如果阈值设置过于严格,例如只要错误率不为零或 CPU 使用超过某一阈值即认为存在潜在问题,可能会导致大量服务被判定为疑似故障节点,尤其是在没有后续数据进一步支持的情况下,这样的结果难以继续深入分析。
相反,如果阈值设置过于宽松,大模型可能会错误地得出“系统正常”的结论,从而忽略实际的故障。
为了解决这一问题,我们认为可以采取更高层次的策略。首先,将阈值设置得相对严格,尽可能暴露所有潜在问题;然后,在具有因果关系的拓扑结构上进一步分析。所谓因果关系拓扑,指的是明确的上下游调用关系:当下游出现故障时,由于因果关系,故障会传递至上游。
然而,构建服务级别的因果关系拓扑图存在挑战,因为同一实例的不同接口可能出现在不同的业务链路中,同时,拓扑中可能会出现环路,所以APO并没有选择服务级别的数据关联做法。
目前在可观测性领域很少看到将服务级别数据交由大模型分析,因为大模型分析出服务级别的故障概览和人直接看服务级别的故障概览效果基本一致,没有额外的信息补充。
3.接口层级数据关联
接口URL层级数据关联是一种较为新颖的关联方式,类似于服务级别的数据关联,但它专注于具体的URL。对于同一实例的不同URL,它会根据不同的数据源(如 Trace、日志和指标)进行单独聚合。由于日志和指标通常属于实例级别,因此在聚合后,可能会出现误报的情况。然而,这种方法简化了用户的认知负担,更有利于帮助用户聚焦于业务接口层面的性能和故障排查。
-
优点:
■ 简洁直观: 用户无需过多关注 Trace、日志、指标或事件等具体数据,可以通过接口层面的抽象来理解接口的健康状态。
■ 服务级别聚合的优势:与服务级别聚合数据类似,接口层级聚合也具有简化监控和排查的优点。 -
缺点:
■ 难以完全避免数据噪音: 由于日志和指标依然是基于服务级别的数据,划分到接口级别后,仍只能将其视为疑似问题,无法完全避免数据噪音的干扰。
APO最后使用的接口级别的关联方式,形成如下图的状态信息汇总。
- 应用接口异常:数据主要来自于trace,主要是对TPS、latency、error rate 指标进行异常判定之后的汇总状态
- 容器异常类型:主要来自与k8s事件,实现对k8s event的状态汇总
- 基础设施异常:来自于容器的CPU、内存、网络和主机CPU、内存、网络等基础指标的异常判定之后的汇总状态(同主机的CPU告警可能产生对被关联的接口而言,存在误告警可能,需要在业务调用拓扑中用专家经验分析判定 )
- 网络异常:来自于对网络丢包、延时的状态判定之后的汇总状态
- java exception:来自于对日志的error、exception的异常判定之后的汇总状态
- 应用实例异常:来自与应用探测的事件状态判定之后的汇总状态
近期还会增加,该接口调用的中间件的异常状态判定,比如kafka的指标状态异常了,会影响调用kafka接口的指标状态异常。
大模型的针对服务级别数据关联的用法
接口级别的统计数据可以直接提交给大模型进行分析,大模型可以基于这些数据判断哪些接口所在的服务可能是故障的疑似节点。然而,与服务级别的数据分析一样,接口级别的数据也面临阀值设定的问题。如果阀值设置过于严格,可能会导致大量接口被标记为疑似故障根因;如果设置过于宽松,可能会错过一些潜在的问题。
尽管存在阀值设置的问题,但我们可以通过更高层次的分析来解决这些挑战。具体来说,所有接口异常的数据都可以通过业务调用链路进一步追踪。在这个链路中,接口之间的调用关系是明确的,并且可以从 Trace 数据中构建出接口维度的因果关系拓扑图。下游接口的延迟、错误等问题,往往会传递到上游接口,影响其性能和错误率。
最后通过自然语言描述的“专家经验”的指导,大模型可以帮助理清业务调用链路中的接口关系,并结合上下游接口的故障情况,从而更准确地判断出疑似故障的根因节点。这样的分析方式,能够让大模型模仿人类专家进行故障定位,有效地提升故障定位的准确性。
APO就是如此设计的,根据这些状态汇总信息结合业务级别的数据关联,快速进行故障定界。最后在根据链路数据进行根因定位,所有的数据关联都被思维链聚合在一个对话中,最终可以用户快速实现故障定界定因。暂时还未见同类型的可观测性产品如此操作。
4.业务级别数据关联
业务级别数据关联将可观测性数据按照业务场景进行聚合。例如,电商平台的“下单”过程可以视为一个完整的业务流程,涉及到多个接口。在这种方式中,所有与“下单”相关的请求数据会被聚合在一张业务调用拓扑中,帮助用户从业务视角进行故障排查和优化。
-
优点:
■ 直观的业务视角:将可观测性数据从业务角度进行聚合,可以帮助用户更好地理解业务流程中的瓶颈和问题。
■ 增强的用户体验:用户可以直接看到与业务相关的数据和故障,而无需关心底层的服务和技术实现。
■ 业务优先的故障排查:这种方式能够帮助用户从业务层面进行高效的故障诊断,尤其适用于大型电商、金融等对业务流畅度要求高的行业。 -
缺点:
■ 数据聚合复杂度高:将业务流程与系统架构紧密结合,需要对系统和业务流程有深刻的理解,聚合的复杂度较高。
■ 节点过多带来的拓扑复杂的问题:节点过多,拓扑实在太大,上百个节点也会导致大模型上下文打满的问题,同时也存在拓扑仍然成环的可能性。
大模型的针对业务级别数据关联的用法
大模型能够接受业务调用拓扑的前提是业务调用拓扑结构不会过于复杂,也要没有环状结构。
- 拓扑结构过大,可能导致大模型上下文限制突破,从而大模型分析失效
- 环状结构的出现,导致专家也很难有好的手段分析因果关系
所以需要提前对业务拓扑结构进行处理,可以利用业务调用链路的不同接口的延时、错误率曲线的相似性,从而快速得到更精简的业务拓扑结构,实现按照故障的贡献度来聚合业务调用拓扑,从而能够让大模型能够在此精简的业务拓扑数据之上分析问题。
未处理的业务调用拓扑:
按照相似度算法处理过之后的业务调用拓扑:
最后按照专家经验可以引导大模型模拟专家在业务调用拓扑之上分析故障。
总结
随着分布式系统的复杂性增加,合理的数据关联方式在可观测性中变得尤为重要。通过将不同来源和维度的可观测性数据(如日志、指标、链路等)进行有效关联,我们能够更全面地诊断系统故障、提高问题定位的准确性,并减少噪声带来的干扰。然而,随着数据量的剧增,传统的数据关联方法也面临着一些挑战,如高资源消耗、信息过载等问题。
通过业务关联和接口关联进行数据定界是故障排查中至关重要的一步。我们可以首先确定业务层面的关键接口,聚焦于用户交互最直接的入口点,利用专家经验,引导大模型模仿专家迅速定位潜在故障源。这一层次的定界有助于将可疑问题限定在业务逻辑的关键路径中,从而减少需要分析的数据范围,提高排查效率。
在此疑似故障节点确定的基础上,通过引入链路的详细关联数据,我们可以进一步深挖每一个相关节点的状态,追踪程序执行过程,从而理解故障根因。通过这种逐层深入的方式,我们能够准确判断出故障的根因。尤其是在复杂的系统中,链路数据能够帮助我们精确地还原请求的完整路径,识别出具体的故障节点。
受限于大模型的上下文限制,直接对所有可观测性数据进行分析并不可行,因此,合理的预处理和数据筛选成为成功应用大模型的前提。大语言模型在这一过程中提供了推理能力,能够按照自然语言描述专家规则操作,这样先比传统AIOPS而言具有很好的可解释性。相比运维数据的预训练的专有大模型,实现成本也相对较低。
总体而言,将可观测性数据按照不同层级(如链路、服务、接口、业务等)进行关联,并结合大模型的智能分析,可以大大提高故障排查的效率和准确性。在此过程中,通过业务和接口层的定界,快速锁定问题范围,再通过链路详细数据的关联逐层深入分析,最终实现精确的根因定位。合理的策略是通过精简和优化拓扑结构、聚合数据并利用专家经验,帮助大模型准确判断故障根因,最终实现高效的故障定位和问题解决。
相关文章:
大语言模型需要的可观测性数据的关联方式
可观测性数据的关联方式及其优缺点 随着现代分布式架构和微服务的普及,可观测性(Observability)已经成为确保系统健康、排查故障、优化性能的重要组成部分。有效的可观测性数据关联方式不仅能够帮助我们实时监控系统的运行状态,还…...
python连点器
要实现一个用于抖音点赞的鼠标连点工具,可以通过编程或现有软件实现。以下是两种常见方法(但请注意:频繁自动化操作可能违反平台规则,需谨慎使用): 方法 1:使用现成工具(如 AutoClic…...
Nginx部署Umi React前端项目标准配置
文章目录 概要前端Umi项目配置文件请求后端Api打包 后端项目Nginx配置配置文件 错误信息 概要 使用UmiJs开发的前端项目打包部署在Nginx,主要是Umi中项目的配置和Nginx的配置 前端Umi项目 基于"umijs/max": "^4.3.24", "react": &…...
Ubuntu20.4软件应用打不开
安装 snap-store: 确保 Snap 已安装: Snap 是一个包管理系统,需要先确保 snapd 已经安装。如果系统中没有安装,可以通过以下命令来安装 Snap: sudo apt update sudo apt install snapd安装 snap-store: 使…...
如何在Vscode中接入Deepseek
一、获取Deepseek APIKEY 首先,登录Deepseek官网的开放平台:DeepSeek 选择API开放平台,然后登录Deepseek后台。 点击左侧菜单栏“API keys”,并创建API key。 需要注意的是,生成API key复制保存到本地,丢失…...
apisix的real-ip插件使用说明
k8s集群入口一般都需要过负载均衡,然后再到apisix。 这时候如果后台业务需要获取客户端ip,可能拿到的是lb或者网关的内网ip。 这里一般要获取真实ip需要做几个处理。 1. 负载均衡上,一般支持配置获取真实ip参数,需要配置上。然…...
基于 Ollama+Docker+OpenWebUI 的本地化部署deepseek流程
搭建deepseek 安装Ollama Ollama官方下载地址 下载完成后双击打开Ollama进行安装,点击install 安装完成后系统会弹出下图提示代表安装成功并且已启动 验证安装 ollama -v安装完成后,cmd 打开命令行窗口,输入 “ollama -v” 测试,显示 olla…...
打家劫舍3
今天和打家讲一下打家劫舍3 题目: 题目链接:337. 打家劫舍 III - 力扣(LeetCode) 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为root。 除了 root 之外,每栋房子有且只有一个“父“…...
第三个Qt开发实例:利用之前已经开发好的LED驱动在Qt生成的界面中控制LED2的亮和灭
前言 上一篇博文 https://blog.csdn.net/wenhao_ir/article/details/145459006 中,我们是直接利用GPIO子系统控制了LED2的亮和灭,这篇博文中我们利用之前写好的LED驱动程序在Qt的生成的界面中控制LED2的亮和灭。 之前已经在下面两篇博文中实现了LED驱动…...
归一化与伪彩:LabVIEW图像处理的区别
在LabVIEW的图像处理领域,归一化(Normalization)和伪彩(Pseudo-coloring)是两个不同的概念,虽然它们都涉及图像像素值的调整,但目的和实现方式截然不同。归一化用于调整像素值的范围,…...
DeepSeek-V2 论文解读:混合专家架构的新突破
论文链接:DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model 目录 一、引言二、模型架构(一)多头部潜在注意力(MLA):重塑推理效率(二)DeepSeekM…...
基于布谷鸟算法实现率定系数的starter
布谷鸟算法(Cuckoo Search, CS)是一种基于群体智能的优化算法,灵感来源于布谷鸟的繁殖行为以及宿主鸟发现外来蛋的概率。该算法由 Xin-She Yang 和 Suash Deb 在2009年提出。它结合了莱维飞行(Lvy flight)这一随机漫步…...
Java之自定义注解
介绍:在Java中,自定义注解是通过 interface 关键字定义的。注解是一种元数据,可以附加到类、方法、字段等代码元素上,用于提供额外的信息或配置。 1. 自定义注解的基本语法 使用 interface 关键字定义注解,注解中可以…...
SpringCloud面试题----Nacos和Eureka的区别
功能特性 服务发现 Nacos:支持基于 DNS 和 RPC 的服务发现,提供了更为灵活的服务发现机制,能满足不同场景下的服务发现需求。Eureka:主要基于 HTTP 的 RESTful 接口进行服务发现,客户端通过向 Eureka Server 发送 HT…...
prometheus配置大盘与告警
1、prometheus配置大盘 kube-prometheus-stack 定义 dashboard https://stackoverflow.com/questions/77271449/persist-grafana-dashboard-on-kube-prometheus-and-expose-itAlso to persist dashboards to outlive pod deletion follow the below steps: Create your cust…...
记录 | WPF创建和基本的页面布局
目录 前言一、创建新项目注意注意点1注意点2 解决方案名称和项目名称 二、布局2.1 Grid2.1.1 RowDefinitions 行分割2.1.2 Row & Column 行列定位区分 2.1.3 ColumnDefinitions 列分割 2.2 StackPanel2.2.1 Orientation 修改方向 三、模板水平布局【Grid中套StackPanel】中…...
git代理设置
在 Git 中,可以通过以下命令查看当前设置的代理配置: 查看 HTTP 代理 git config --get http.proxy查看 HTTPS 代理 git config --get https.proxy查看全局代理设置 如果你设置了全局代理,可以通过以下命令查看: git config …...
使用 Axios ——个人信息修改与提示框实现
目录 详细介绍:个人信息设置与修改页面实现 1. HTML 结构 2. CSS 样式 3. JavaScript 核心逻辑 a. 信息渲染与表单提交 b. 头像上传与预览 4. 功能详解 5. 总结 提示: 这段代码展示了如何创建一个简单的个人信息设置页面,包含用户个…...
(done) openMP学习 (Day11: 可怕的东西:内存模型,Atomics,Flush(Pairwise同步))
url: https://dazuozcy.github.io/posts/introdution-to-openmp-intel/#19-%E6%8A%80%E8%83%BD%E8%AE%AD%E7%BB%83%E9%93%BE%E8%A1%A8%E5%92%8Copenmp 这一节介绍了一些概念,包括 OpenMP 内存模型,串行一致性的概念,以及 Flush 操作ÿ…...
docker数据持久化的意义
Docker 数据持久化是指在 Docker 容器中保存的数据不会因为容器的停止、删除或重启而丢失。Docker 容器本身是临时性的,默认情况下,容器内的文件系统是临时的,容器停止或删除后,其中的数据也会随之丢失。为了确保重要数据…...
【漫话机器学习系列】084.偏差和方差的权衡(Bias-Variance Tradeoff)
偏差和方差的权衡(Bias-Variance Tradeoff) 1. 引言 在机器学习模型的训练过程中,我们常常面临一个重要的挑战:如何平衡 偏差(Bias) 和 方差(Variance),以提升模型的泛…...
android的Compose 简介
Jetpack Compose 简介 Jetpack Compose 是 Android 官方推出的声明式 UI 工具包,用于替代传统 XML 布局,简化界面开发流程。它基于 Kotlin 语言,通过函数式编程实现高效、灵活的 UI 构建,支持实时预览和更直观的状态管理。 优势…...
git学习
报错504:代理有问题 查看代理: 法1 export | grep proxy 法2 env | grep xxx设置代理HTTPS_PROXY为空: export HTTPS_PROXY重进入git bash,HTTPS_PROXYxxx,又出现了 有效的办法 无效的办法: #取消htt…...
Spring Boot 对接深度求索接口实现知识问答功能
Spring Boot 对接深度求索接口实现知识问答功能 一、概述 本文将详细介绍如何使用 Spring Boot 对接深度求索(DeepSeek)接口,实现知识问答功能。深度求索是一个强大的自然语言处理平台,提供多种 API 接口,包括知识问…...
探索Scikit-learn:Python中的机器学习宝库
探索Scikit-learn:Python中的机器学习宝库 引言 在数据科学和机器学习的世界中,Python无疑是最受欢迎的编程语言之一。而在Python的众多机器学习库中,Scikit-learn无疑是最闪耀的明星之一。Scikit-learn是一个开源的Python库,它…...
活动预告 | Power Hour: Copilot 引领商业应用的未来
课程介绍 智能化时代,商业应用如何实现突破?微软全球副总裁 Charles Lamanna 将为您深度解析,剖析其中关键因素。 在本次线上研讨会中,Charles Lamanna 将分享他在增强商业运营方面的独到见解与实战策略,深度解读商业…...
MIT6.824 Lecture 2-RPC and Threads Lecture 3-GFS
Lecture 2-RPC and Threads Go语言在多线程、同步,还有很好用的RPC包 《Effective Go》 线程是实现并发的重要工具 在分布式系统里关注多线程的原因: I/O concurrencyParallelismConvenience Thread challenges 用锁解决race问题 Coordination channel…...
MariaDB *MaxScale*实现mysql8读写分离
1.MaxScale 是干什么的? MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换,对多个从服务器能实现负载均衡。 2.MaxScale 实验环境 中间件192.168.12…...
Linux之Http协议分析以及cookie和session
Linux之Http协议分析以及cookie和session 一.分析请求行与响应行1.1请求行1.1.1资源的URL路径1.1.2常见的方法1.2响应行 二.cookie和session2.1cookie2.2session 一.分析请求行与响应行 在我们简单了解了请求和响应的格式以及模拟实现了请求和响应后我们已经可以通过网页来访问…...
Python Pandas(5):Pandas Excel 文件操作
Pandas 提供了丰富的 Excel 文件操作功能,帮助我们方便地读取和写入 .xls 和 .xlsx 文件,支持多表单、索引、列选择等复杂操作,是数据分析中必备的工具。 操作方法说明读取 Excel 文件pd.read_excel()读取 Excel 文件,返回 DataF…...
iOS主要知识点梳理回顾-3-运行时
运行时(runtime) 运行时是OC的重要特性,也是OC动态性的根本支撑。动态,如果利用好了,扩展性就很强。当然了,OC的动态性只能算是一个一般水平。与swift、java这种强类型校验的语言相比,OC动态性很…...
[渗透测试]热门搜索引擎推荐— — shodan篇
[渗透测试]热门搜索引擎推荐— — shodan篇 免责声明:本文仅用于分享渗透测试工具,大家使用时,一定需要遵守相关法律法规。 除了shodan,还有很多其他热门的,比如:fofa、奇安信的鹰图、钟馗之眼等࿰…...
java-初识List
List: List 是一个接口,属于 java.util 包,用于表示有序的元素集合。List 允许存储重复元素,并且可以通过索引访问元素。它是 Java 集合框架(Java Collections Framework)的一部分 特点: 有序…...
ElasticSearch集群因索引关闭重打开导致飘红问题排查
背景 某组件向 ElasticSearch 写入数据,从最近某一天开始写入速度变慢,数据一直有积压。推测是 ElasticSearch 集群压力导致的,查看 ElasticSearch 集群状态,发现集群确实处于 red 状态。 本文记录 ElasticSearch 集群因索引关闭…...
idea 如何使用deepseek 保姆级教程
1.安装idea插件codegpt 2.注册deepseek并生成apikey deepseek 开发平台: DeepSeek 3.在idea进行codegpt配置 打开idea的File->Settings->Tools->CodeGPT->Providers->Custom OpenAI Chat Completions的URL填写 https://api.deepseek…...
【大模型】硅基流动对接DeepSeek使用详解
目录 一、前言 二、硅基流动介绍 2.1 硅基流动平台介绍 2.1.1 平台是做什么的 2.2 主要特点与功能 2.2.1 适用场景 三、硅基流动快速使用 3.1 账户注册 3.2 token获取 3.2.1 获取token技巧 四、Cherry-Studio对接DeepSeek 4.1 获取 Cherry-Studio 4.2 Cherry-Stud…...
机器学习数学基础:14.矩阵的公式
1. 操作顺序可交换 对于矩阵 A A A,若存在两种运算 ? ? ?和 ? ? ?,使得 ( A ? ) ? ( A ? ) ? (A^{?})^{?}\ (A^{?})^{?} (A?)? (A?)?,这意味着这两种运算的顺序可以交换。由此我们得到以下三个重要等式: ( A …...
t113-qt
修改QT配置: # # qmake configuration for building with arm-linux-gnueabi-g ## MAKEFILE_GENERATOR UNIX # CONFIG incremental # QMAKE_INCREMENTAL_STYLE sublib# include(../common/linux.conf) # include(../common/gcc-base-unix.conf) # inc…...
SQL自学,mysql从入门到精通 --- 第 14天,主键、外键的使用
1.主键 PRIMARY KEY 主键的使用 字段值不允许重复,且不允许赋NULL值 创建主键 root@mysqldb 10:11: [d1]> CREATE TABLE t3(-> name varchar(10) PRIMARY KEY,-> age int,-> class varchar(8)-> ); Query OK, 0 rows affected (0.01 sec)root@mysqldb 10:…...
整合 Redis 分布式锁:从数据结构到缓存问题解决方案
引言 在现代分布式系统中,Redis 作为高性能的键值存储系统,广泛应用于缓存、消息队列、实时计数器等多种场景。然而,在高并发和分布式环境下,如何有效地管理和控制资源访问成为一个关键问题。Redis 分布式锁正是为了解决这一问题…...
ASP.NET Core WebSocket、SignalR
目录 WebSocket SignalR SignalR的基本使用 WebSocket WebSocket基于TCP协议,支持二进制通信,双工通信。性能和并发能力更强。WebSocket独立于HTTP协议,不过我们一般仍然把WebSocket服务器端部署到Web服务器上,因为可以借助HT…...
array_walk. array_map. array_filter
1. array_walk 函数 array_walk 用于遍历数组并对每个元素执行回调函数。它不会受到数组内部指针位置的影响,会遍历整个数组。回调函数接收的前两个参数分别是元素的值和键名,如果有第三个参数,则数组所有的值都共用这个参数。 示例代码&am…...
解锁国内主流前端与后端框架
前端框架大揭秘 在当今的 Web 开发领域,前端框架的地位愈发举足轻重。随着用户对 Web 应用交互性和体验性要求的不断攀升,前端开发不再仅仅是简单的页面布局与样式设计,更需要构建复杂且高效的用户界面。前端框架就像是一位得力助手…...
Nginx进阶篇 - nginx多进程架构详解
文章目录 1. nginx的应用特点2. nginx多进程架构2.1 nginx多进程模型2.2 master进程的作用2.3 进程控制2.4 worker进程的作用2.5 worker进程处理请求的过程2.6 nginx处理网络事件 1. nginx的应用特点 Nginx是互联网企业使用最为广泛的轻量级高性能Web服务器,其特点是…...
【PDF提取内容】如何批量提取PDF里面的文字内容,把内容到处表格或者批量给PDF文件改名,基于C++的实现方案和步骤
以下分别介绍基于 C 批量提取 PDF 里文字内容并导出到表格,以及批量给 PDF 文件改名的实现方案、步骤和应用场景。 批量提取 PDF 文字内容并导出到表格 应用场景 文档数据整理:在处理大量学术论文、报告等 PDF 文档时,需要提取其中的关键信…...
HTML之CSS定位、浮动、盒子模型
HTML之CSS定位、浮动、盒子模型 定位 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…...
【Java基础】为什么不支持多重继承?方法重载和方法重写之间区别、Exception 和 Error 区别?
Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:Java基础面经 📚本系列文章为个…...
使用scoop 下载速度慢怎么办
在国内使用 Scoop 下载速度慢是一个常见问题,主要是因为 Scoop 默认的软件源(bucket)和下载服务器通常位于国外。以下是一些提高下载速度的方法: 1. 更换 Scoop 镜像源(Bucket 镜像): 原理&…...
使用Redis解决使用Session登录带来的共享问题
在学习项目的过程中遇到了使用Session实现登录功能所带来的共享问题,此问题可以使用Redis来解决,也即是加上一层来解决问题。 接下来介绍一些Session的相关内容并且采用Session实现登录功能(并附上代码),进行分析其存在…...
OnlyOffice docker 运行(详细)
下载镜像 推荐使用 GitHub Action 方式下载: Action 地址:https://github.com/Shixuebin/DockerTarBuilder 教程地址:https://www.bilibili.com/video/BV1EZ421M7mL/ docker 镜像安装 docker load -i xxx.tar镜像运行 docker run -i -t -…...