运维管理数智化:数据与智能运维场景实践

news2024/12/23 22:59:14

本文来自腾讯蓝鲸智云社区用户:CanWay

摘要:笔者根据自身的技术和行业理解,分享嘉为蓝鲸数据与智能运维场景实践。

涉及关键字:一体化运维、平台化运维、数智化运维、AIOps、运维PaaS、运维工具系统、蓝鲸等。

本文作者:嘉为蓝鲸运维产品及解决方案负责人 张敏、嘉为蓝鲸平台产品线总经理 周宗沛

全文共计6500字,预计阅读时间14min。

数据与智能技术在运维业务中的定位

数据与智能技术在运维业务中的应用近几年进入“实用化提升阶段”,无论从供给方,还是需求方,都逐步认识到,“数据与智能”运维有其边界和条件,“AI加持运维”比“AI颠覆运维”有了更广泛的声音;我们乐于看到甲乙方更为聚焦在实用化业务场景上:基于数据与智能的技术手段,补足和提升一体化运维。

回归业务本质,运维复杂度是由管理场景和技术对象共同来影响的,所以回到一体化运维的定义中:基于运维业务视角的角色、流程、活动(对象)、工具系统的整合,业务运转顺畅、流程运行高速、工具支撑高效是对运维一体化的核心验证,运维一体化不仅仅是工具全面和单一工具技术功能完备,而是要融入业务设计和整个体系中。因而数据和智能是一种生产力,尤其是在数据整合、高阶分析场景上,带来整体的提升。

运维大数据在运维的定位:跨多数据源系统,实现配置、运行、操作、流程等维度数据源分析,提升性能容量、观测整合、运营分析等的运维能力。例如:在一站式数据和功能闭环的可观测架构设计下,数据采集、清洗、存储、检测、消费均自行闭环,产品内置大数据能力。然而,由于数据源来自不同的专业监控工具,对数据接入、统一元数据和数据标签的要求变得更高。因此,需要运维大数据进行管理和处理。

AI技术在运维中的定位:通过机器学习、自然语言处理、大语言模型和其他AI技术,AI in All来对原有运维系统的能力加持,提升故障管理、服务优化、成本节省、安全提升等运维能力。例如:在一体化运维的告警事件中心里,核心是告警接入、标准化与丰富、告警收敛、屏蔽、委派、生成事件、自动化处置,而在规模到达一定量级的告警数,则需要文本相似度等算法来做告警的智能聚合,或基于图谱的智能聚合,这样能在原有基础上进一步升级。

概要设计:运维大数据及AI是技术能力,核心是应用到运维业务场景中;有三个核心基础:基础运维系统提供数据和能力、数据及AI平台提供数据处理和模型训练能力、运维数据分析及算法工程师和团队提供组织支撑。

--b3bdda620e541301e9047a0c56f1c02d.png

图1:数据与智能业务架构

大数据分析运维场景实践

首先初步定义运维数据域,可以大致划分成5个域:

1、配置域:IT资产管理系统、配置管理中各类电子信息设备的基本信息、技术参数及关联关系等信息,包括PC机、服务器、存储设备、网络设备、安全设备、辅助设备、机房环境设备、套装软件及应用系统软件等。

2、状态域:IT监控、自动化运维、安全监测等采集的设备软硬件性能、状态、事件、日志、告警及实用化数据等。

3、流程域:运维流程管理中执行一个业务流程所产生的相关记录数据。

4、作业域:自动化作业、故障自愈、编排处置步骤等作业执行流程数据和操作审计数据。

5、知识域:故障事件处理经验,其他相关知识库,以知识主题、关键字索引、内容等形式存在。

数据治理框架核心要定义几个问题:

运维数据之间的逻辑和关联设计如何做?
运维大数据平台的定位?
数据消费场景如何持续建设?
数据与AI如何统一建设?
关键逻辑为:

--3e6dfcd4db9464d70b3b371e4bbfdea9.png

图2:基于运维数据的管理架构

这里有几个实践建议:

1、消费场景聚焦在提升性能容量、观测整合、运营分析的高阶运维能力;尤其是在观测整合上,当前可观测主要围绕故障分析和定位展开,基于数据管理框架,则可以完成数据标签统一、数据聚合计算、数据关联信息平面、AI模型应用等,例如其中一个观测场景可以基于告警视角,展开Trace、Log、Metric、场景视图、知识库关联、变更事件关联分析等,来形成初步的观测整合分析场景:

--595cce69844361485278741b95109702.png

图3:告警视角的观测场景示例

2、技术价值主要体现在复杂和大规模的数据清洗、开发和存储需求;跨数据源的数据关联计算;联动MLOps实现数据样本和数据源的关联,实现AIOps模型开发和应用。

3、数据管理采用专业分散,消费驱动的模式管理,专业分散是指如CMDB、Metric、Trace、Log等都在专业管理工具里,消费驱动则是基于场景调用时,再去做数据接入、标签、关联计算等,支撑数据之上的场景应用。

而到运维数据平台自身的应用架构,运维数据平台应该具备的核心功能包括数据采集接入、数据清洗加工、数据入库存储、数据开发、数据探索、数据集市等,并且要具备元数据、数据质量和安全等管理能力和自运维能力。在运维数据管理过程中不仅要关注“稳定”“安全”“可靠”,更要关注“体验”“效率”“效益”。

--8288a5760d85642c153dc80e1685e4d9.png

图4:运维大数据平台功能架构

AI运维场景实践

数据+算法驱动的分析决策能力是AIOps场景落地的核心能力。基于运维数据平台提供的高质量、低延迟的统一运维数据,智能分析决策平台可以根据不同场景需求采用适合的AI算法和模型做出合理判断或结论,并驱动自动管控平台执行运维操作。

因此,智能分析决策平台最核心的模块是人工智能/机器学习平台。类似于行业通用的机器学习平台,它需要具备数据集成和计算、模型开发和训练、模型部署和推理等基础功能。然而,为了支撑AIOps场景,该平台需要在运维领域中加入一些特性,高效地孵化出适配各种智能运维场景的算法和模型。

首先,智能分析决策平台需要建立运维数据模型、指标体系和知识图谱。该功能面向可扩展的AI场景,依托于运维数据平台,采用“采集、治理、应用、采集”的循环迭代方法。通过不断尝试落地AIOps场景,发现数据质量问题,并进行补充完善。

其次,智能分析决策平台最终的用户是运维人员。因此,它需要具备流程化的低门槛场景建模能力,采用向导式的图形化建模。这样可以将运维人员难以理解的算法变成“组件”,将模型训练过程中的复杂调参过程变成“灵敏度调整”,从而更快地将成熟的AI场景普及到更多的业务中。

最后,可以将运维领域的DevOps理念引入到算法和模型开发过程中,以加速AI场景的开发。

--b2ded430e9dee6aad18f0ff94ef82627.png

图5: AI平台功能架构

指标异常检测

指标异常检测是其他智能运维场景建设的基础,属于单场景,异常检测的结果将为后续的告警收敛、故障定位、故障自愈等场景提供重要输入。指标一般分为业务指标(如访问量、响应率、响应时间等)、性能指标(CPU、内存、IO、网络流量等),并且汇总多个独立的或关系型的指标可以组成不同的多指标异常检测。这里详细介绍一下性能单指标异常检测。

性能指标异常检测可以采用了时间序列特征提取和深度贝叶斯学习的通用异常检测方案,它考虑了不同类型曲线(周期型、稳定型、稀疏型)的特征,可以满足机器指标、业务指标等时序数据的异常检测需求。

通用单指标异常检测的检测流程分为异常模式提取和有监督异常检测两部分:

①在异常模式提取阶段,基于概率论、极值理论、残差理论等,从时序数据中提取能多方面表征数据异常模式的特征。

②在有监督异常检测阶段,采用基于主动学习的深度贝叶斯模型,能够在异常检测的同时,根据用户反馈学习未知的异常模式和部分用户偏好。

--098a7e318befef5fb56d11b7b7d4ab7e.png

图6: 异常检测模型

单指标异常检测可以集成应用到监控产品中,当CPU使用率突降和磁盘使用率突降时,通用单指标异常检测算法可检测出异常点,并在告警中心可以展示告警详情。包括告警内容,以及关联的维度。如下图所示,其中检测出异常时刻,会进行标注(红色框)。

--dd99c31438ca9eabbee52434572eaae3.png

图7: 异常检测模型应用

时序数据预测

在IT运维领域,对信息系统进行检测,会产生大量多类型的时间序列数据,如用户在线数、主机CPU使用率等。时序数据预测利用历史时间,序列数据预测未来一段时间数据的变化趋势,可以满足如CPU、磁盘使用率、在线人数等各类大型在线业务的时序预测需求,为用户做出重要决策(如资源管理、异常告警等)提供准确有力的数据支撑。

时序数据预测是一种基于Transformer的时间序列预测方法,Transformer是最成功的序列模型架构,在自然语言处理(NLP)、语音识别和计算机视觉等各方面有着非常显著的优势。基于Transformer的时间序列预测模型,广泛运用的相关场景包括交通流量估计、能源管理、金融等领域。在运维领域主要对长时时序数据进行预测,例如资源的容量预测(如服务器的CPU、Mem)、成本预测等。

时序数据预测方案设计了一套基于Transformer模型的融合迁移学习和增量学习的时间序列预测服务,它通过对不同频率下的时间序列指标进行归一化,以确保模型能在多源系统之间实现共享,采用基于贝叶斯估计的Transformer模型来生成预测边缘分布,同时将迁移学习和增量学习引入到模型训练过程中以避免概念漂移风险,确保模型的长期预测性能。

--e293efe7f87baf25ebde0cbb0c3ee96c.png

图8: 时序数据检测模型

时序数据预测算法可以集成应用在配置管理平台的资产盘点分析和容量管理平台的容量分析预测等场景,分析和预测IT系统的关键应用未来的容量情况,支撑报表展示和辅助客户进行资源规划。下图是在容量管理平台里的一个业务弹性扩缩容场景,应用时序数据预测AI模型对某业务服务器集群CPU使用量进行预测分析,并结合自动化系统执行扩缩容任务,在保障业务稳定的情况下,降低了30%的成本。

--acc0fd9dbab4651bd020f04d5fd68cb3.png

图9: 时序数据检测模型应用

多维下钻

业务系统的管理人员需要监控大量的指标来了解和维护系统的可用性,通常这些指标会包含一些维度,例如,一个微服务调用数相关的指标可能会包含服务供应方(Internet Service Provider,ISP)、服务所属业务信息等维度。通过组合不同维度来汇总指标,可以从不同粒度,不同角度来充分展示系统的实时状态。然而,由于维度的组合爆炸问题,系统管理人员通常需要筛选并重点关注某些维度组合下的指标汇总值;这些指标的汇总方式可以是求和,求均值等。经过筛选出来的指标汇总值又称为SLI (Service Level Indicator)。当从SLI中检测出异常时,为了诊断异常,就需要找出实际上导致SLI出现异常的维度与这一维度下的元素组合,这一过程又称为多维下钻。

基于多维下钻和贝叶斯网络的多维指标异常根因维度定位方法流程如下图所示,由检测出的SLI异常触发。多维下钻算法包含维度映射构造和维度下钻两个核心步骤。维度映射构建旨在指定各个最细粒度指标与聚合形成的SLI之间的计算公式。这一计算公式可由用户配置的,用户可基于业务自身需要定制任意SLI指标计算方式。用户对SLI指标计算方法的需求包含但不限于计数型,求和型,求均值型,求最值型,求分位数型和求比例型。异常维度下钻,就是要利用各个最细粒度指标的值作为输入,最终找出真正导致汇总形成的SLI指标出现异常的维度和对应的元素组合。由于组合爆炸问题,需要充分挖掘异常维度的特征,以设计启发式搜索的方法来实现这一目的。

--81b5db1d488241fd816b8402bc39cfb8.png

图10: 多维下钻模型逻辑

在某些情形中,在下钻出具体的异常维度后,需要更进一步地明确这些异常维度之间的因果关系。最终识别的异常维度及其因果关系会提供给用户,辅助其对系统中出现的故障进行根因分析,做出快速响应与恢复。

在监控场景的单指标告警策略,如果没有配置完整的维度信息,可能在告警时无法准确判断当前异常是由哪个维度导致的。维度下钻功能可以自动分析异常的维度信息,辅助定位问题。如某业务的在线人数检测到异常,通过下钻该时间点的异常,给出具体异常的维度(比如用户所属省份、客户端版本等),以及最有可能异常的具体维度值 (含排序)。

指标关联推荐

在生产环境下,在线系统的系统管理人员需要管理大量的运维对象(例如,关键绩效指标等描述应用服务能力的指标,服务器、公共和自定义组件等基础物理设施)来维护系统的可用性。其中,每个运维对象会暴露大量的监控指标,供系统管理人员从各个方面来监视系统的实时状态。通常,这些监控指标的数量可达成百上千个,并且,随着系统可观测性的发展,这一数量只会越来越大。大量的监控指标使得系统管理人员疲于观察和分析,极大地影响了故障发现和诊断的效率。

指标关联推荐算法设计了一种基于异常共现频率和随机游走的监控指标推荐方法。它由两个主要部分组成:指标关系构建和关键指标推荐。指标关系构建首先计算监控指标两两之间的异常共现频率和曲线相似度,然后基于异常共现频率确立指标间的关系,并使用曲线相似度剪枝,避免冗余推荐,最终确立指标间关系图。关键指标推荐则利用随机游走算法分析上一步骤得出的指标关系图,确定监控指标的推荐排名。

--585fd0c9adeb6fcbd322990ca2ca837b.png

图11: 指标关联推荐模型

监控配置的单指标告警策略,只能对单个指标的异常进行告警,在排查问题时可能需要结合关联指标进行人工的根因定位。关联指标推荐功能会根据是否同时异常、告警发生时的曲线形态来推荐关联指标。如下图所示,某服务器的磁盘空间使用率检测到异常,通过关联指标推荐,发现了【操作系统】层级的其他7个关联指标(仅展示3个示例),存在形状相似或同时异常。

--383f1ae2ee09ded206c904894bd8d5e6.png

图12: 指标关联推荐模型应用

日志聚类

日志聚类的主要流程是日志经过预处理后,通过计算日志间的相似度,将相似度高的日志聚在一起,通过模式识别生成日志模式,从而得到日志聚类模型,供日志检索和实时预测使用,降低运维人员查看海量异构日志的工作负担。

--7e861b08c6c9750805ac5178685fd2f3.png

图13: 日志聚类模型

聚类是找出日志分词和已有聚类簇的最大相似度,进行阈值判别,放入对应类/创建新类。

--8e5625d79665dacfd1fe6b5721c864a8.png

图14: 日志相似度模型

模式识别是从聚好的类簇中提取日志模式。模式识别包括日志对齐和模式生成两部分。

日志对齐:日志对齐的最佳方式是在合并后生成最小数量的通配符和变量。在对齐的过程中,分词之间可能会插入一些GAP。对齐算法确保插入GAP后同一类的日志长度相等。

模式生成:得到相同长度的日志后,遍历分词,将不一致的替换为通配符,并输出日志模式。

--71c8293462012862767f052b24dd5409.png

图15: 日志聚类模式识别

在蓝鲸日志平台,开启日志聚类后,可以高效查看日志聚类结果,了解新出现的日志模式。同时可以根据Pattern从少到多的不同档位,来灵活地选择不同粒度的聚类结果。

--57e530c5d535cfff45cb17b9bcef9dd5.png

图16: 日志聚类应用场景

日志异常检测

日志异常检测属于相对复杂的场景,本方案采用了离线冷启动训练和在线训练相结合的方式,依赖日志聚类单场景能力。离线冷启动训练,是将离线冷启动日志样本经过预处理后,计算日志间的相似度,将相似度高的日志聚在一起,通过模式识别生成日志模式,得到日志聚类模型,供在线训练作为冷启动模型使用;在线训练以流式方式实时解析日志,快速匹配到已有的日志模式,对未匹配到的日志即为新的日志模式,即为新类日志。

--4a5ee28d36227c1c9f3634b17e0dd597.png

图17: 日志异常检测模型

当使用日志模板模型检测出新的模板后,将会发出异常告警,可以在日志出现新的异常/错误模式时,第一时间收到告警,并查看对应的模式及日志内容。

--8b451878414aaf3ef9da38cafd7244eb.png

图18: 日志异常检测模型应用

告警收敛

在运维监控系统中,告警收敛是指对告警信息进行分析、合并和丢弃,以此来降低告警信息的规模,其对降低网络运维的压力意义重大。

在运维监控系统中,可以把告警分为噪声告警、事件告警、故障告警。根据告警出现的频繁程度和基于统计的方式,区分出噪声告警和非噪声告警,其中噪声告警指的是在历史上频繁出现的告警。再根据非噪声告警的数量和涉及的指标范围,区分为事件告警和故障告警,一个故障的重要告警更多,涉及的指标也更广。

聚集维度的告警收敛主要是基于频繁项集进行挖掘,找到告警聚集的维度,比如告警都聚集在某个服务上、某个主机上、某个Pod上,帮助用户快速定位告警的影响范围或者根因。层级分析的告警收敛使用有监督的方式,对告警进行分类,假设常见的告警类型有应用层、服务层、主机层、数据中心层等,由于一般来说,越偏低层告警数量越多,用户关心程度越低,因此采用高层级的告警收敛低层级的告警,将影响的最高层级通知用户。

--c4fabb852583b0a671e724c24cba7f2b.png

图19: 告警聚类逻辑示例

告警收敛后的降噪比如下图所示,整体降噪比达到98.4%,某个业务的降噪比84.6%。

--f263e7557700c86d3814a521ddce9988.png

图20: 告警聚类应用场景

大语言模型应用

大语言模型在运维领域对于我们来看,改变了人与运维系统的交互模式,其中场景就包括智能问答、故障解决建议、数据统计分析等。

提供了集中核心能力:

  • 语料管理系统:为用户提供语料撰写、语料管理、流程编排;
  • 高级编排中心:集成了语料、大模型、知识库、自动化等多种功能,提供了高度灵活的编排方式;
  • 模型训练中心:支持多次、批量训练,并提供了调参功能,提供了高效的模型训练方式,能够快速- 训练出高质量的机器人模型。
    接入运维沉淀的知识库文章→用户专业咨询→从知识库总结输出,自动获取告警、资产、日志等相关信息,综合分析,专业引导,最终辅助解决问题。

--e1223c4ce42a7d4afe5a8bf79a542cf2.png

图21: 故障智能问答交互

嘉为蓝鲸作为业内领先的平台化、一体化、数智化运维解决方案提供商,我们坚定地致力于把成熟的业务实践、领先的技术架构,赋能给我们的客户。

本期我们共同探讨了“数智化”相关内容,“一体化”、“平台化”相关内容请点击下方“系列推荐”。

--058efc0cfaf930fc35b31a81889a3b67.png

最后,欢迎随时与嘉为蓝鲸共同探讨!

总结:以上为笔者对数据与智能运维的剖析,欢迎探讨交流,谢谢!

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

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

相关文章

vue2迁移到vue3注意点

vue2迁移到vue3注意点 1、插槽的修改 使用 #default , 以及加上template 模板 2、 类型的定义,以及路由,vue相关资源(ref, reactive,watch)的引入等 3、类装饰器 1)vue-class-component是vue官方库,作…

ActiveMQ-CVE-2023-46604

Apache ActiveMQ OpenWire 协议反序列化命令执行漏洞 OpenWire协议在ActiveMQ中被用于多语言客户端与服务端通信。在Apache ActvieMQ5.18.2版本以及以前,OpenWire协议通信过程中存在一处反序列化漏洞,该漏洞可以允许具有网络访问权限的远程攻击者通过操作…

网页数据抓取:融合BeautifulSoup和Scrapy的高级爬虫技术

网页数据抓取:融合BeautifulSoup和Scrapy的高级爬虫技术 在当今的大数据时代,网络爬虫技术已经成为获取信息的重要手段之一。Python凭借其强大的库支持,成为了进行网页数据抓取的首选语言。在众多的爬虫库中,BeautifulSoup和Scrap…

1140 分珠

这是一个图的划分问题&#xff0c;可以使用深度优先搜索&#xff08;DFS&#xff09;或广度优先搜索&#xff08;BFS&#xff09;来解决。我们需要找到一种划分方式&#xff0c;使得划分后的两部分总重的差值的绝对值最小。 以下是对应的C代码&#xff1a; #include <iost…

房地产市场2024年展望——深度解读行业趋势

作为一名有十多年经验的地产营销人&#xff0c;对于2024年房地产行业的发展趋势&#xff0c;我认为可以从以下几个方面来探讨&#xff0c;如果觉得对你有帮助&#xff0c;请不吝一个三连&#xff08;赞同喜欢收藏&#xff09; 一、市场调整与分化加剧 在经历了较长时间的市场…

用chatgpt写了个二级导航,我全程一个代码没写,都是复制粘贴

今天心血来潮&#xff0c;让chatgpt给我写个移动端的二级导航菜单&#xff0c;效果如下&#xff1a; 1、两级导航&#xff0c;竖向排列&#xff0c;一级导航默认显示&#xff0c;二级隐藏 2、抽屉伸缩效果&#xff0c;点击一级导航&#xff0c;展开二级导航&#xff0c;再次点…

同步IO、异步IO以及五种网络IO模式

目录 一、同步IO和异步IO 二、五种网络IO模式 1、阻塞IO 2、非阻塞IO 3、IO多路复用 3.1、SELECT 3.2、POLL 3.3、EPOLL 一、同步IO和异步IO 场景1&#xff1a; 小明去打开水&#xff0c;而开水塔此时没有水&#xff0c;小明在现场一直等待开水到来&#xff0c;或者不断…

老牌数据库HRS,三分之二二区以上!| CHARLS等七大老年公共数据库周报(7.10)...

七大老年公共数据库 七大老年公共数据库共涵盖33个国家的数据&#xff0c;包括&#xff1a;美国健康与退休研究 (Health and Retirement Study, HRS)&#xff1b;英国老龄化纵向研究 &#xff08;English Longitudinal Study of Ageing, ELSA&#xff09;&#xff1b;欧洲健康、…

图片转文字的软件,分享3种不同的类型的软件!

在信息爆炸的时代&#xff0c;图片作为一种直观、生动的信息载体&#xff0c;已经成为我们日常生活中不可或缺的一部分。然而&#xff0c;有时候我们可能需要将图片中的文字提取出来&#xff0c;以便于编辑、整理或进一步使用。那么&#xff0c;有哪些实用的图片转文字软件可以…

基于粒子滤波和帧差法的目标跟踪matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 帧差法 4.2 粒子滤波 4.3 粒子滤波与帧差法的结合 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 原重采样方法&#xff1a; 改进重采样方法&#xff1a; 2.算法…

OpenSceneGraph学习笔记

目录 引言第一章&#xff1a;OSG概述一、前言&#xff08;1&#xff09;为什么要学习OSG?&#xff08;2&#xff09;OSG的组成&#xff08;3&#xff09;OSG的智能指针&#xff08;4&#xff09;OSG的安装编译 二、第一个OSG程序&#xff08;1&#xff09;Hello OSG程序&#…

关于升级WIN11后,点击功能面板空白的解决方法

方法一&#xff1a;先试试按下WinX,选择Windows powershell(管理员)&#xff0c;输入sfc /scannow等待系统自动扫描完成后重启系统看看是否修复。 方法二&#xff1a;打开微软Windows11镜像下载官网&#xff1a;Download Windows 11&#xff0c;下载对应版本和语言的ISO系统镜…

人工智能与伦理挑战:多维度应对策略

人工智能技术近年来取得了迅猛发展&#xff0c;广泛应用于医疗诊断、金融分析、教育辅助、自动驾驶等各个领域&#xff0c;极大地提升了生产效率和服务质量&#xff0c;推动了科技进步和商业创新。然而&#xff0c;伴随其普及和应用的泛滥&#xff0c;AI也带来了数据隐私侵犯、…

【银河麒麟操作系统】虚机重启lvs丢失现象分析及处理建议

了解银河麒麟操作系统更多全新产品&#xff0c;请点击访问麒麟软件产品专区&#xff1a;https://product.kylinos.cn 环境及现象描述 40台虚机强制重启后&#xff0c;其中8台虚机找不到逻辑卷导致启动异常&#xff0c;后续通过pvcreate 修复重建pv&#xff0c;激活vg和lv并修复…

基于python的图像去水印

1 代码 import cv2 import numpy as npdef remove_watermark(image_path, output_path):# 读取图片image cv2.imread(image_path)# 转换为灰度图gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 使用中值滤波去除噪声median_filtered cv2.medianBlur(gray, 5)# 计算图像的梯…

Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置”

1. Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置” 文章目录 1. Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置”2. 拦截器3. Spring MVC 中的拦截器的创建和基本配置3.1 定义拦截3.2 拦截器基本配置3.3 拦截器的高级配置 4. Spr…

初识C++|类和对象(中)——类的默认成员函数

&#x1f36c; mooridy-CSDN博客 &#x1f9c1;C专栏&#xff08;更新中&#xff01;&#xff09; &#x1f379;初始C|类与对象&#xff08;上&#xff09;-CSDN博客 4. 类的默认成员函数 默认成员函数就是⽤⼾没有显式实现&#xff0c;编译器会⾃动⽣成的成员函数称为默认成…

数字孪生技术栈:简单选three.js,复杂选unity3D,基本不会错。

数字孪生项目中涉及到3D模型交互的部分&#xff0c;选择什么技术栈呢&#xff0c;一般来说遵循这个原则&#xff1a;简单的应用可以选择Three.js&#xff0c;而复杂的应用则更适合选择Unity3D。 Three.js是一个基于WebGL的开源JavaScript库&#xff0c;用于在Web浏览器中创建和…

IP地址定位与GPS定位:技术解析与应用比较

IP地址定位和GPS定位是比较常见的定位技术。本文将与大家探讨这两种技术的工作原理、优缺点及其在实际应用中的比较和融合。 IP地址定位 IP地址定位的工作原理 IP地址&#xff08;InternetProtocolAddress&#xff09;是分配给联网设备的唯一标识符。IP地址定位通过分析设备…

基于springboot3实现单点登录(一): 单点登录及其相关概念介绍

引言 应网友要求&#xff0c;从本文开始我们将实现一套基于springboot3springsecurity的单点登录认证系统。 单点登录的实现方式有多种&#xff0c;接下来我们会以oauth2为例来介绍和实现。 单点登录介绍 单点登录&#xff08;Single Sign-On&#xff0c;简称SSO&#xff0…