可观测性方案怎么选?SelectDB vs Elasticsearch vs ClickHouse

可观测性(Observability)是指通过系统的外部输出数据,推断其内部状态的能力。可观测性平台通过采集、存储、可视化分析三大可观测性数据:日志(Logging)、链路追踪(Tracing)和指标(Metrics),帮助团队全面洞察分布式系统的运行状态,支撑资源优化、预警机制、故障分析等,提升系统可靠性与用户体验。

SelectDB 针对可观测性场景进行倒排索引、全文检索、写入性能、存储空间等多方面优化,助力企业构建高性能、低成本、开放的可观测性平台,相对于 Elasticsearch 和云上日志服务,性能提升的同时成本降低数倍。

  • 高性能: 写入性能是 Elasticsearch 的 5 倍,日志查询性能是其 2 倍,聚合统计分析性能是其 6~21 倍。
  • 低成本: 以日增 100TB、保存 30 天、热数据 3 天的需求,SelectDB Cloud 成本大约 20 万/月,Elasticsearch 大约 140 万/月,云厂商日志服务大约 135 万/月
  • 易用性: 兼容 MySQL 语法;架构简洁,支持无停服自动升级、弹性扩缩容及自动负载均衡;并提供可视化集群管理 Cluster Manager。
  • 开放性: 在全球主流云上(阿里云、腾讯云、华为云、AWS、Azure、GCP)提供服务,支持 OpenTelemetry、Grafana、 Kibana 等开源和商业生态,保持生态开放性和中立性。

可观测数据的特征以及各种方案之间的对比.png

接下来,我们将从多个角度深入分析和介绍,包括可观测性场景需求、可观测数据的特征以及各种方案之间的对比。帮助读者全面地理解可 SelectDB 可观测性方案的优势和适用性。

为什么可观测性越来越重要

可观测性平台在提升系统稳定性、优化运维效率和支持业务创新方面发挥着关键作用,近年来,可观测性的地位日益提升,主要源于以下两方面因素:

  1. 业务和 IT 系统越来越复杂: 随着云计算和微服务的发展,业务系统日益复杂。例如,一个 GenAI 应用的请求可能涉及到 App、服务网关、鉴权服务、计费服务、RAG 引擎、Agent 引擎、向量数据库、业务数据库、分布式缓存、消息队列、大模型 API 等数十个服务。传统依赖登录服务器查询运行状态和分析故障的方式,在复杂系统中已经不再有效。而可观测性平台统一采集和存储 Log、Trace、Metrics 数据,提供统一可视化分析,能够有效快速发现问题。
  2. 业务可靠性要求显著提高: 系统故障及其恢复效率直接影响用户体验。可观测性通过全域数据打通和全景可视化分析,支持团队快速定位问题根源,缩短业务中断时间,保障服务可用性。同时,依托全局数据分析和预测,能够提前发现系统资源瓶颈,预防故障发生。

如何选择可观测性解决方案

可观测性数据的特征

可观测性解决方案的核心在于如何高效应对海量数据的存储与分析挑战,而可观测性数据本身具有以下显著特征:

  1. 数据存储量大且对成本敏感: 可观测性数据特别是 Log 和 Trace 规模极为庞大且持续生成。对于中大型企业而言,每天产生的可观测性数据高达 100 TB 甚至 PB 量级。为了满足业务需求或监管要求,这些数据往往需要存储半年甚至更长时间,存储总量长期维持在 PB 甚至 EB 级别,带来高昂的存储成本。而随着时间的推移,这些数据的价值也在逐渐下降,因此对于可观测性平台来说,存储成本也变的更加敏感。
  2. 数据写入吞吐高且需要实时: 面对每天 TB 甚至 PB 量级新增数据,要求平台具备 1 ~ 10GB/s、百万 ~ 千万条/s 的高吞吐写入能力;同时,考虑到可观测性数据常用于故障排查、安全追踪等时效要求很高的场景,还要求平台保证秒级写入延迟,确保数据的实时性和可用性。
  3. 需要实时分析且支持全文检索: Log 和 Trace 数据中有大量的文本,如何在其中快速检索关键词和短语是该场景的核心需求。由于数据规模庞大,传统的全量扫描和字符串匹配方式在性能和扩展性上往往无法达到实时响应的要求,特别是在上述高吞吐低延迟实时写入的前提下,实时文本检索更加困难。
  4. 数据模式不固定且经常扩展: Log 最初始形态为非结构化原始日志,以 Free Text 的形式存在,逐步演变为以 JSON 为主的半结构化 Log 和 Trace,可自主增减 JSON 内部的字段,其数据的 Schema 非常灵活。传统严格的数据库和数据仓库已难以应对,数据湖系统虽然具备存储灵活性,但在处理性能和实时性方面却无法满足分析需求。
  5. 需要对接多种数据源和分析工具: 可观测性生态中包含众多数据采集器和可视化分析工具,存储与分析引擎需兼容多种生态工具,满足与多样化数据和工具的高效集成。

可观测性方案的选择

当前市场呈多元化竞争态势,Elasticsearch 、Clickhouse、SelectDB 及各大云厂商均提供了可观测性方案。如何选择合适的方案,企业需从性能、成本、易用性、开发性等方面综合评估:

  1. 性能:包括写入性能和查询性能。 可观测性常用于故障排查等紧急情况,一方面要求查询响应要快,特别是 Log、Trace 数据中的文本,需要实时全文检索支撑用户迭代式探索分析;另一方面要能查询到最新产生的数据,至少需查询到最近几秒的新鲜数据。

    1. Elasticsearch 以倒排索引和全文检索著称,提供秒级实时检索的能力,但在高吞吐下写入性能较低,高峰期容易出现写入拒绝和延迟过高的问题。其次,它的聚合统计分析能力性能也不太理想。
    2. SelectDB 采用列式存储和向量化引擎,针对可观测性分析场景对倒排索引进行了优化,其性能优于 Elasticsearch ,写入性能是 Elasticsearch 的 5 倍,查询性能是其 2 倍,聚合统计分析性能是 Elasticsearch 的 6~21 倍。
    3. Clickhouse 通过列式存储和向量化引擎,在写入和聚合查询上有显著优势,但全文检索性能相较于 Elasticsearch 或 SelectDB 存在数倍至数十倍的差距,并且当前仍处于实验阶段。
    4. 云厂商日志服务通过丰富的资源满足写入和查询性能,同时也带来下面的成本问题。
  2. 成本:包括存储成本和计算成本。 相比于业务数据,可观测性数据的存储量庞大、价值密度更低,而且随着时间的推移,这些数据的价值持续下降,迫使企业更关注存储成本。同时,海量数据写入和查询带来的计算成本也很高,GB/s 的数据写入、TB 甚至 PB 级的数据检索往往需要大量的计算资源。

    1. Elasticsearch 成本问题众所周知,它采用原始数据行存 + 倒排索引 + docvalue 列存的存储模式,压缩比只有 1.5:1。同时,JVM 性能开销和构建倒排导致写入时 CPU 占用很高,计算资源成本也较高。对于日增 100TB、保存 30 天、热数据 3 天的需求,Elasticsearch 成本大约 140 万/月。
    2. SelectDB 在可观测性场景进行性能和成本双重优化,同等负载下成本较 Elasticsearch 缩减 50% ~ 80%。存储上包括倒排索引、列式存储、ZSTD 压缩的优化,压缩比可达 5:1 ~ 10:1,结合冷热存储分层可进一步压缩成本。写入上包括单副本写入、时序 compaction 减少写放大、向量化索引构建等优化。对于日增 100TB、保存 30 天、热数据 3 天的需求,SelectDB Cloud 成本大约 20 万/月。
    3. Clickhouse 采用列式存储和向量化引擎,存储和写入成本也较低。
    4. 云厂商日志服务的成本也很高,对于日增 100TB、保存 30 天、热数据 3 天的需求,成本大约 135 万/月。
  3. 易用性:包括易用性和易维护性。 由于数据量庞大,可观测性平台通常采用分布式架构,其部署、扩容、缩容和升级等运维操作的便捷性直接影响平台的扩展能力。同时,系统接口设计也至关重要,既决定了平台调用底层存储的开发效率,也关系到终端用户的使用体验。

    1. 在 Elasticsearch 的 ELK 生态中,Kibana 提供了直观易用的 Web 界面,且易于维护管理。然而,其提供的 DSL 查询语言复杂,学习门槛很高,对于可观测性平台对接和应用开发带来较大挑战。
    2. SelectDB 提供与 Kibana 类似的交互式分析界面,并将对接 Kibana 和 Grafana 原生界面,查询语言采用标准 SQL 并兼容 MySQL 语法,可观测性平台开发的开发门槛和使用难度均较低。其次,SelectDB 架构简洁,支持无停服自动升级、弹性扩缩容及自动负载均衡,同时提供可视化 Cluster Manager 高效管理集群。
    3. Clickhouse 虽提供 SQL 接口,但语法采用独立体系,存在一定学习成本。且 Clickhouse 在维护管理上也面临很多挑战,比如本地表 + 分布式表的概念、扩缩容无法自动均衡等等,通常需要开发一套运维系统来支撑。
    4. 云厂商日志服务提供 SaaS 服务,用户无需自行维护系统,使用也比较方便。
  4. 开放性:包括开源开放和多云中立。 可观测性平台的建设还需要考虑是否会被绑定,需重点评估开源程度、多云服务支持能力及生态开放性,这些因素直接影响平台的灵活性和长期可用性。

    1. Elasticsearch 提供开源和商业版本,在多个云上提供服务。它的 ELK 生态比较独立,难以与其他生态打通,比如 Kibana 只支持 Elasticsearch 而且很难扩展到其他系统。
    2. SelectDB 是基于 Apache Doris 开源项目的商业版本,也是 Doris 社区的最大的贡献者,在全球主流云上(阿里云、腾讯云、华为云、AWS、Azure、GCP)提供服务。SelectDB 支持 OpenTelemetry、Grafana、 Kibana 等开源生态和商业生态,保持生态开放性和中立性。
    3. Clickhouse 提供开源和商业版本,在多个云上提供服务。Clickhouse 支持 OpenTelemetry、Grafana 等开源生态,同时收购了一家可观测性商业公司,在生态支持上将很难保持中立性。
    4. 云厂商日志服务会和自己的云绑定,不提供开源的选项,不同云厂商之间的产品,很难保持一致的体验或者便捷的迁移。

可观测数据的特征以及各种方案之间的对比-2.png

基于上述分析,可知 SelectDB 可以实现高性能写入和查询的同时保持很低的成本,且其架构简单、易于维护和扩展,提供简单易用的标准 SQL 接口,支持开源版本、商业版本和云上服务,确保私有化和多云部署体验一致,是构建可观测性平台的理想选择。

基于 SelectDB 的可观测性解决方案

SelectDB 针对可观测性场景的特点,在 MPP 分布式架构,结合向量化执行引擎、CBO 优化器基础增加了倒排索引以及极速全文检索能力,实现了写入性能和存储空间极致优化,能够很好的应对可观测性数据提出的挑战,使用户可基于 SelectDB 构建高性能、低成本、开放的可观测性平台。

系统架构

基于 SelectDB 的可观测性平台主要由 3 大核心部分组成:

  • 数据采集和预处理:支持多种可观测性数据采集工具,包括开放的 OpenTelemetry 生态和 ELK 生态中的 Logstash、Filebeat,可通过 HTTP API 将 Log、Trace、 Metrics 数据写入 SelectDB。
  • 数据存储和分析引擎:SelectDB 提供高性能、低成本的统一可观测性数据存储,并可通过 SQL 接口提供丰富的检索和分析能力。
  • 查询分析和可视化:对接最常用的可观测性可视化分析工具,包括广泛使用的 Grafana 和 ELK 生态中的 Kibana,为用户提供简单易用的界面,以进行检索、分析,并设置告警规则,实现实时监控和快速响应。

基于 SelectDB 的可观测性解决方案.png

基于 SelectDB 的可观测性解决方案有以下特点及优势:

  • 高性能
    • 高吞吐、低延迟写入:支持每天 PB 级 (10GB/s ) 的 Log、Trace、Metrics 数据持续稳定写入,同时保持延迟在秒级甚至毫秒级。
    • 高性能倒排索引和全文检索:支持倒排索引、全文检索、日志场景关键词检索,并能在秒级响应,实测性能是 Clickhouse 的 3~10 倍。
    • 高性能聚合分析:基于 MPP 分布式架构和向量化 Pipeline 执行引擎,充分利用集群分布式和 CPU 多线程资源,在 ClickBench 测试中实现全球领先性能,可很好支撑可观测性场景的趋势分析、监控告警等常见查询。
  • 低成本
    • 高压缩率和低成本存储:支持 PB 级海量存储,压缩率可达 5:1 ~ 10:1 甚至更高(包括索引),比 Elasticsearch 存储成本节省 50% ~ 80%,支持冷数据存储到 S3/HDFS,存储成本再降 50%
    • 低成本写入:同样的写入流量, SelectDB 的 CPU 资源消耗比 Elasticsearch 至少降低 70% 。
  • Flexible Schema
    • 顶层字段变更:可以通过 Light Schema Change 发起 ADD / DROP COLUMN / INDEX 增加 / 删除列 / 索引,并能够在秒级完成 Schema 变更。用户在规划可观测平台时,只需关注当前需要哪些字段需要创建索引。
    • 字段内部变更:专门为可扩展的 JSON 数据设计了半结构化数据类型 VARIANT,可以自动识别 JSON 中的字段名和类型,并自动拆分频繁出现的字段进行列式存储,提高压缩率和分析性能。相对于 Elasticsearch 的 Dynamic Mapping,VARIANT 允许字段的类型发生变化。
  • 易用性
    • 标准易用的 SQL 接口:SelectDB 支持标准 SQL、兼容 MySQL 协议和语法,基于 SelectDB 构建的可观测性平台能够使用 SQL 进行查询,对工程师和数据分析师非常友好。
    • 拥抱可观测生态:兼容 OpenTelemetry 和 ELK 生态,无缝对接 Grafana 和 Kibana 等主流可视化工具,便于用户采集数据以及可视化分析。
    • 运维方便:无需停服即可在线扩缩容、自动均衡;私有化部署提供可视化 Cluster Manager 和 K8s Operator 工具;云上提供开箱即用的免运维服务。
  • 开放性
    • 开源开放:SelectDB 是基于 Apache Doris 开源项目的商业版本,也是开源社区最大的贡献者,支持 OpenTelemetry Grafana 等开源生态和商业生态。
    • 多云中立:SelectDB 已与主流云厂商(阿里云、腾讯云、华为云、AWS、Azure、GCP)合作,为用户提供多云一致的体验。

Demo & Screenshot

以下,我们通过 OpenTelemetry 社区的全方位演示 Demo ,来展示基于 SelectDB 构建的可观测性平台能力。

如下方视频所示:被观测的业务系统是一个十多个模块组成的电商网站,压力模拟程序 Load Generator 持续请求入口服务,在整个电商系统中产生大量的可观测性数据(Log、Trace、Metrics),这些数据使用 OpenTelemetry 的各种语言 SDK 进行采集,发送给 OpenTelemetry Collector,Collector 中的 Processors 进行预处理,然后经过 OpenTelemetry Doris Exporter 写入到 SelectDB,在通过 Grafana 进行可视化分析。

Grafana 通过 MySQL Datasource 连接到 SelectDB,提供统一的 Log、Trace、Metrics 可视化分析,还可以实现 Log 和 Trace 的联动。

  • Log
    Log.png

  • Trace
    Trace.png

  • Metrics
    metrics.png

Grafana 的 Log 可视化和分析能力相对于 Kibana 来说是比较简单的,因此在 SelectDB Studio 中实现了类似 Kibana Discover 的检索分析能力,未来也会集成到 Grafana Doris datasource 中,提供更好的统一 Log Trace Metrics 可视化分析能力。

此外,在未来一个季度,SelectDB 将通过兼容 Elasticsearch 查询协议,实现原生 Kibana 直接连接到 SelectDB。对于 ELK 用户而言,如果将 Elasticsearch 替换为 SelectDB,可在不改变日志采集和可视化分析使用习惯的前提下,实现降本增效的目标、降低了原用户的使用门槛。

Studio Discover.png

用户声音

案例 1:观测云

观测云使用 Doris 的商业化版本 SelectDB 替代了云上的 Elasticsearch。通过 SelectDB 的倒排索引能力、Variant 数据类型、冷热数据存储分层等特性,为观测云日志存储和分析场景服务注入强大的动力,实现存储成本降低 70% 的同时,查询性能提升 2-4 倍,最终实现整体性价比 10 倍提升。

观测云.png

案例 2 :中信银行信用卡

为确保业务系统的稳定运行、提升运维效率和用户体验,中信银行信用卡中心建立了大规模的日志云分析平台。支持实时监控和故障排查、满足金融监管对日志审计的严格要求。目前,平台每日新增日志数据突破百 TB,全量归档日志量达 PB 级。

早期基于 Elasticsearch 构建的日志云平台面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此,卡中心引入 Apache Doris 替换 Elasticsearch,实现资源投入降低 50%、查询速度提升 2~4 倍,同时显著提高了运维效率。

中信银行信用卡.png

案例 3:MiniMax

MiniMax 引入阿里云数据库 SelectDB 版构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数 PB,日均新增日志写入量达数百 TB。系统在 P95 分位查询场景下的响应时间小于 3 秒,峰值时刻实现了超过 10GB/s 的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax 在优化性能的同时显著降低了建设成本,计算资源用量降低 40%,热数据存储用量降低 50%,为未来业务的高速发展和技术演进奠定了坚实基础。

MiniMax.png

结束语

基于 SelectDB 的高性能倒排索引、高吞吐量写入和高压缩存储,用户可以构建出性能高于Elasticsearch 10 倍的可观测性平台,并支持国内外多个云上便捷使用 SelectDB Cloud 的开箱即用服务。

SelectDB 将在可观测性内核能力和生态支持上持续进化,未来几个月将推出以下新功能:

  1. 通过 es2doris proxy 实现与原生 Kibana 的可视化分析对接,结合现有的 Logstash Doris Output Plugin,帮助 ELK 生态的用户平滑迁移到 SelectDB。
  2. 通过 Grafana Doris Datasource 提供 Grafana Native Support,并将类似 Kibana Discover 的交互式检索分析能力集成到 Grafana,让 Grafana 用户也能获得更好的检索分析体验。
  3. 增强倒排索引和全文检索能力,支持更多分词器,如 ik、icu、edge ngram,同时允许自定义组合分词器。
  4. 增强半结构化数据分析 VARIANT,支持不频繁字段的合并存储,并根据字段名指定类型和索引等。

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

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

相关文章

机器人厨师上岗!AI在餐饮界掀起新风潮!

想要了解人工智能在其他各个领域的应用,可以查看下面一篇文章 《AI在各领域的应用》 餐饮业是与我们日常生活息息相关的行业,而人工智能(AI)正在迅速改变这个传统行业的面貌。从智能点餐到食材管理,再到个性化推荐&a…

Linux动态库静态库总结

静态库生成 g -c mylib.cpp -o mylib.o ar rcs libmylib.a mylib.o 动态库生成 g -fPIC -shared mylib.cpp -o libmylib.so -fPIC:生成位置无关代码(Position-Independent Code),对动态库必需。 库文件使用: 静态库&…

通过user-agent来源判断阻止爬虫访问网站,并防止生成[ error ] NULL日志

一、TP5.0通过行为&#xff08;Behavior&#xff09;拦截爬虫并避免生成 [ error ] NULL 错误日志 1. 创建行为类&#xff08;拦截爬虫&#xff09; 在 application/common/behavior 目录下新建BlockBot.php &#xff0c;用于识别并拦截爬虫请求&#xff1a; <?php name…

OpenHarmony平台驱动开发(十五),SDIO

OpenHarmony平台驱动开发&#xff08;十五&#xff09; SDIO 概述 功能简介 SDIO&#xff08;Secure Digital Input and Output&#xff09;由SD卡发展而来&#xff0c;与SD卡统称为MMC&#xff08;MultiMediaCard&#xff09;&#xff0c;二者使用相同的通信协议。SDIO接口…

使用FastAPI和React以及MongoDB构建全栈Web应用03 全栈开发快速入门

一、什么是全栈开发 A full-stack web application is a complete software application that encompasses both the frontend and backend components. It’s designed to interact with users through a web browser and perform actions that involve data processing and …

Coco AI 开源应用程序 - 搜索、连接、协作、您的个人 AI 搜索和助手,都在一个空间中。

一、软件介绍 文末提供程序和源码下载 Coco AI 是一个统一的搜索平台&#xff0c;可将您的所有企业应用程序和数据&#xff08;Google Workspace、Dropbox、Confluent Wiki、GitHub 等&#xff09;连接到一个功能强大的搜索界面中。此存储库包含为桌面和移动设备构建的 Coco 应…

CSS经典布局之圣杯布局和双飞翼布局

目标&#xff1a; 中间自适应&#xff0c;两边定宽&#xff0c;并且三栏布局在一行展示。 圣杯布局 实现方法&#xff1a; 通过float搭建布局margin使三列布局到一行上relative相对定位调整位置&#xff1b; 给外部容器添加padding&#xff0c;通过相对定位调整左右两列的…

# 实时英文 OCR 文字识别:从摄像头到 PyQt5 界面的实现

实时英文 OCR 文字识别&#xff1a;从摄像头到 PyQt5 界面的实现 引言 在数字化时代&#xff0c;文字识别技术&#xff08;OCR&#xff09;在众多领域中发挥着重要作用。无论是文档扫描、车牌识别还是实时视频流中的文字提取&#xff0c;OCR 技术都能提供高效且准确的解决方案…

<C#>log4net 的配置文件配置项详细介绍

log4net 是一个功能强大的日志记录工具&#xff0c;通过配置文件可以灵活地控制日志的输出方式、格式、级别等。以下是对 log4net 配置文件常见配置项的详细介绍&#xff1a; 根元素 <log4net> 这是 log4net 配置文件的根元素&#xff0c;所有配置项都要包含在该元素内…

编译docker版openresty

使用alpine为基础镜像 # 使用Alpine作为基础镜像 FROM alpine:3.18# 替换为阿里云镜像源&#xff0c;并安装必要的依赖 RUN sed -i s|https://dl-cdn.alpinelinux.org/alpine|https://mirrors.aliyun.com/alpine|g /etc/apk/repositories && \apk add --no-cache \bui…

conda 输出指定python环境的库 输出为 yaml文件

conda 输出指定python环境的库 输出为 yaml文件。 有时为了项目部署&#xff0c;需要匹配之前的python环境&#xff0c;需要输出对应的python依赖库。 假设你的目标环境名为 myenv&#xff0c;运行以下命令&#xff1a; conda env export -n myenv > myenv_environment.ym…

[Java][Leetcode middle] 121. 买卖股票的最佳时机

暴力循环 总是以最低的价格买入&#xff0c;以最高的价格卖出: 例如第一天买入&#xff0c;去找剩下n-1天的最高价格&#xff0c;计算利润 依次计算到n-1天买入&#xff1b; 比较上述利润 // 运行时间超时。 o(n^2)public int maxProfit1(int[] prices) {int profit 0;for (i…

克隆虚拟机组成集群

一、克隆虚拟机 1. 准备基础虚拟机 确保基础虚拟机已安装好操作系统&#xff08;如 Ubuntu&#xff09;、Java 和 Hadoop。关闭防火墙并禁用 SELinux&#xff08;如适用&#xff09;&#xff1a; bash sudo ufw disable # Ubuntu sudo systemctl disable firewalld # CentO…

记录一次使用thinkphp使用PhpSpreadsheet扩展导出数据,解决身份证号码等信息科学计数法问题处理

PhpSpreadsheet官网 PhpSpreadsheet安装 composer require phpoffice/phpspreadsheet使用composer安装时一定要下载php对应的版本&#xff0c;下载之前使用php -v检查当前php版本 简单使用 <?php require vendor/autoload.php;use PhpOffice\PhpSpreadsheet\Spreadshee…

前端工程化:从 Webpack 到 Vite

引言 前端工程化是现代Web开发不可或缺的一部分&#xff0c;它通过自动化流程和标准化实践&#xff0c;提高了开发效率和代码质量。在这个领域中&#xff0c;构建工具扮演着核心角色&#xff0c;而Webpack和Vite则是其中的两位重要角色。本文将探讨前端工程化的演进历程&#…

Leetcode 3543. Maximum Weighted K-Edge Path

Leetcode 3543. Maximum Weighted K-Edge Path 1. 解题思路2. 代码实现 题目链接&#xff1a;3543. Maximum Weighted K-Edge Path 1. 解题思路 这一题思路上就是一个遍历的思路&#xff0c;我们只需要考察每一个节点作为起点时&#xff0c;所有长为 k k k的线段的长度&…

香橙派zero3 安卓TV12,更换桌面launcher,开机自启动kodi

打开开发者模式&#xff0c;连击版本号&#xff0c;基本上都是这样。 adb连接 查找桌面包名 adb shell dumpsys activity activities | findstr mResumedActivity 禁用原桌面com.android.tv.launcher&#xff0c;已经安装了projectivylauncher434.apk桌面。 adb shell pm …

半小时快速入门Spring AI:使用腾讯云编程助手CodeBuddy 开发简易聊天程序

引言 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;越来越多的开发者开始探索如何将AI集成到自己的应用中。人工智能正在迅速改变各行各业的工作方式&#xff0c;从自动化客服到智能推荐系统&#xff0c;AI的应用几乎无处不在。Spring AI作为一种开源框架…

【unity游戏开发——编辑器扩展】使用MenuItem自定义菜单栏拓展

免职声明&#xff1a; 1、目前本博客分享的大部分知识产出方式是&#xff1a;学习别人知识自己实际做一遍自己的理解扩展内容自己整理、归纳、总结再分享。2、正如博客简介所说&#xff1a;这里没有教程&#xff0c;这里只做学习分享。所有的内容都是学习笔记&#xff0c;可以说…

数学复习笔记 7

前言 现在复习线代基础&#xff0c;慢慢打基础。。 转置 方阵转置之后行列式保持不变。我的笔记感觉主要不是整理知识点&#xff0c;主要是把我的一些理解记录下来。这才是我自己的东西&#xff0c;那些需要记住的知识和内容记住就好了。记住转置有四个性质&#xff0c;在讲…