与创新者同行,Apache Doris in 2023

在刚刚过去的 Doris Summit Asia 2023 峰会上,Apache Doris PMC 成员、飞轮科技技术副总裁衣国垒带来了“与创新者同行”的主题演讲,回顾了 Apache Doris 在过去一年所取得的技术突破与社区发展,重新思考了在面对海量数据实时分析上的挑战与机遇,全面介绍了 Apache Doris 在未来的迭代计划与演进方向。

以下为衣国垒在峰会上的演讲节选,以衣国垒第一人称叙述,经编辑。

非常高兴可以看到这么多朋友共聚一堂,现场几乎座无虚席。我也相信,同样有很多朋友在线上观看峰会直播,跨越空间的距离,与我们共享此刻。

今年的主题是「与创新者同行」,按照惯例往往在开场需要对主题进行阐述,不过我希望把这一环节放在最后,希望大家能跟随我的节奏。相信在今天的分享结束后,大家会对这一主题有着更加深刻的认识。

Apache Doris in 2023

01 从“全面进化”到“里程碑式的跨越”

回顾 Apache Doris 过去的发展历程,如果用一个关键词来形容 Apache Doris 在过去的 2022 年所取得的种种收获,我们相信是“厚积而薄发后的全面进化”—— 在 2022 年所发布的版本中,我们全面启用了向量化执行引擎、实现了主键模型上 Merge-on-Write 数据更新模式、引入统一的数据湖对接框架 Multi-Catalog 以及毫秒级的 Schema Change 等重磅特性,在性能、稳定性、易用性等取得了全面进化。

而对于即将过去的 2023 年,我们迎来了具有里程碑意义的 2.0 版本。从贡献者和 Commits 数据可以看到,2.0 版本合入的 PR 超过 4100 个,比 1.2 版本增加了 70%、比去年同期发布的 1.1 版本更是增长了近 10 倍,参与这一版本开发的贡献者数量达 275 之多,这一版本的发布也标志着我们实现了“里程碑式的跨越”:

  • 引入自适应的并行执行模型和全新查询优化器,盲测性能提升 10 倍,多表关联提升 13 倍,单表场景提升 10 倍、高并发点查询提升 20 倍;
  • 从报表和 Ad-hoc 等典型 OLAP 场景拓展到湖仓一体、高并发数据服务以及日志检索与分析,支撑更统一多样的分析场景;
  • 支持实时数据高吞吐写入、秒级时延,对各类数据更新都有完备的支持,构建更高效易用且稳定的实时数据处理和分析链路;

WechatIMG767.jpg

02 全球最活跃的开源大数据项目之一!

而在社区生态方面,Apache Doris 社区同样也愈加繁荣,从开发者规模和开发者活跃度指标上可见:

  • 在 GitHub 上 Apache Doris 已经收获了超过 9800 个 Star,与去年同期相比增长近 70%,且保持持续的增长态势;
  • 总的贡献者规模已经增长至近 580 位,每周都会有许多新面孔开始参与社区贡献;
  • 平均每月的活跃贡献者已稳定在 120 人左右,已大幅超过全球知名的开源大数据项目,包括 Spark、Elasticsearch、Trino、Druid 等;
  • 这些贡献者们每周都会为 Apache Doris 贡献超过 160 个PR,同时社区也建立了更加成熟稳定的 CR 流水线,每个合入的代码都会经过 3000+ 的测试用例,这也使得社区以极快速度迭代的同时,稳定性也得以保证;

这一系列数字无不说明,Apache Doris 现在已经成为全球最活跃的开源大数据项目之一

2.png

3.png

除此以外,我们也看到贡献者来源更加多元化,广泛分布于国内的数据库独角兽企业和众多一线互联网公司,我们也看到阿里云、腾讯云、华为云、百度智能云、天翼云以及火山引擎等顶尖云厂商也纷纷投入社区共建,并提供了基于 Apache Doris 的云上数仓托管服务,给予开源用户更多选择。

4.png

03 开源实时数据仓库领域的事实标准!

在技术加速迭代的同时,我们也看到有越来越多的用户开始选择相信 Apache Doris,社区已经聚集了超过 30000 名数据库以及大数据相关领域的工程师,享受由 Apache Doris 带来的极致分析体验。

在过去许多社区用户的印象中,Apache Doris 更多是被互联网企业所使用,例如百度、美团、小米、京东、腾讯等互联网一线企业。而现如今所覆盖的行业领域已越来越广泛,不论是金融、政企、电信、制造亦或是交通、物流、快速消费品行业等,都有着许多企业在其核心分析业务中应用 Apache Doris。

在此我很高兴地宣布,截至目前 Apache Doris 在全球范围的用户规模已经超过了 4000 家!这 4000 多家企业用户中,绝大多数都与我们有着直接的接触,不论是反馈需求、参与测试、提交代码或是分享实践经验,都在以他们的方式回馈和贡献社区。他们中的许多也参与了今天的峰会分享,我们也期待他们真实业务场景的经验收获能为更多人带来启发。

在如此庞大的用户规模下,Apache Doris 已成为各行各业用户在使用实时数据仓库的首选,成为开源实时数据仓库领域的事实标准!

我们如何应对实时分析的挑战

从 Apache Doris 诞生之初,就一直致力于解决人们海量数据实时分析的难题。而从过去版本的发展脉络中,我们同样可以清晰感受到,为了更好地应对用户在真实业务场景中的挑战,Apache Doris 在朝着实时分析、融合统一和云原生这三大趋势上持续演进,这也是我们在 2023 年聚焦的开发方向;

  • 实时分析:在大规模实时数据上实现极致的查询性能,既包含了数据的高吞吐实时写入和实时更新、也包含了更低的查询分析时延;
  • 融合统一:在一套系统中提供对多种分析负载的支持、简化复杂架构带来的运维使用成本,除了持续加强过去 Apache Doris 一直比较擅长的报表分析和即席查询外,湖仓联邦分析、日志检索分析、ETL/ELT 的查询加速以及高并发 Data Serving 等分析场景也是重要的突破方向;
  • 云原生化:面向云计算基础设施进行革新,利用云的极致弹性降低存储和计算成本,支持迁移到 K8s 容器等更多环境中进行部署及运行。

6.png

01 极致的查询性能

开头我们也曾提到过,在 Apache Doris 2.0 版本中我们实现了盲测性能 10 倍以上的提升,这其中最重要的部分在于 CBO 查询优化器和自适应的 Pipeline 并行执行模型。

CBO 查询优化器:过去 Apache Doris 多服务于在线报表业务,这些场景往往是将数据打平存储进宽表中以应对分析,即使存在多表关联往往也较为简单,因此发挥性能的关键在于扫描和聚合的效率。而当越来越多用户基于 Apache Doris 进行复杂计算或 ELT/ETL 批量数据处理时,大宽表或者预聚合表这种空间换时间的方式很难发挥作用,需要人工介入进行调优并改写 SQL ,查询性能遭遇到挑战。为此我们花费了大量的时间进行了查询优化器的重构,并在 Apache Doris 2.0 版本中正式发布。在面对数千上万行的复杂 SQL 或者数十张表的关联计算时,CBO 优化器可以生成更高效的 Query Plan 并提升查询性能,减少因人工调优带来的人力消耗和心智成本。

Pipeline 并行执行模型:过去版本中在发起 Query 时 BE 执行并发度需要进行手工调整,同样也需要人工介入,并且大小查询在同一个集群执行时会遭遇资源抢占问题。为此我们引入了 Pipeline 执行模型作为查询执行引擎,系统自动调整执行并行度,并可以保证大小查询的稳定执行,提升了 Apache Doris 对于 CPU 的利用效率,因此在混合负载场景下查询性能和稳定性都得到了全面提升。

7.png

与此同时,在 Apache Doris 2.0.0 版本我们引入了全新的行列混合存储以及行级 Cache,使得单次读取整行数据时效率更高、大大减少磁盘访问次数,同时引入了点查询短路径优化、跳过执行引擎并直接使用快速高效的读路径来检索所需的数据,并引入了预处理语句复用执行 SQL 解析来减少 FE 开销,在并发能力上实现了数量级的提升。

面向高并发 Data Serving 场景,实现了单节点 30000 QPS 的并发表现,较过去版本点查询并发能力提升超 20 倍。

8.png

在多维度检索场景中,我们同样引入了倒排索引来提升性能,在关键字模糊查询、等值查询和范围查询等场景中均取得了显著的查询性能和并发能力提升。

9.png

02 实时写入与更新

导入性能优化:聚焦于实时分析,我们在过去的几个版本中在不断增强实时分析能力,其中端到端的数据实时写入能力是优化的重要方向,在 Apache Doris 2.0 版本中,我们进一步强化了这一能力。通过 Memtable 并行下刷、单副本导入等优化,使实时导入性能获得 2-8 倍的提升。

10.png

Merge-on-Write:Unique Key 主键模型的 Merge-on-Write 数据更新模式最初是在 Apache Doris 1.2 版本中引入,而在 Apache Doris 2.0 版本中这一能力得到进一步优化,功能稳定性得到大幅提升,并通过写入性能的优化实现了单节点 40w 行每秒 Upsert 操作的峰值写入吞吐,同时引入了数据的关联更新以及部分列更新,实现了对各类更新操作的完整支持。

WechatIMG765.jpg

12.png

了解更多:10x 查询性能提升,全新 Unique Key 的设计与实现|新特性解读

03 更多分析场景

湖仓一体:在 Apache Doris 1.2 版本中我们引入了 Multi-Catalog 功能,支持了多种异构数据源的元数据自动映射与同步,实现了便捷的元数据和数据打通。在 2.0.0 版本中,我们进一步对数据联邦分析能力进行了加强,引入了更多数据源,并针对用户的实际生产环境做了诸多性能优化,在真实工作负载情况下查询性能得到大幅提升。这一框架也帮助我们可以更好进行跨源的数据同步,只需要简单的 insert into select 即可实现数据快速写入 Doris 中。

了解更多:查询性能较 Trino/Presto 3-10 倍提升!Apache Doris 极速数据湖分析深度解读

半结构化数据分析与日志检索分析:在 Apache Doris 2.0.0 版本中我们提供了原生的半结构化数据支持,在已有的 JSON、Array 基础之上增加了复杂类型 Map,并基于 Light Schema Change 功能实现了 Schema Evolution。与此同时,2.0.0 版本新引入的倒排索引和高性能文本分析算法全面加强了 Apache Doris 在日志检索分析场景的能力,可以支持更高效的任意维度分析和全文检索。结合过去在大规模数据写入和低成本存储等方面的优势,相对于业内常见的日志分析解决方案,基于 Apache Doris 构建的新一代日志检索分析平台实现了 10 倍以上的性价比提升。

了解更多:如何基于 Apache Doris 构建新一代日志分析平台|解决方案

更精细化的多租户与资源管理方案:当单个集群应对多种分析负载时,随之而来的问题即如何保证相互之间的资源抢占,为此在 2.0 版本中我们引入了资源隔离方案,通过对 Workload 进行分组管理,以保证内存和 CPU 资源的灵活调配和管控,此外我们还引入了查询排队的功能,在创建 Workload Group 时可以设置最大查询数,超出最大并发的查询将会进行队列中等待执行,以此来缓解高负载下系统的压力。

13.png

04 低成本与高可用

降存储成本:在存储方面,冷热数据往往面临不同频次的查询和响应速度要求,因此通常可以将冷数据存储在成本更低的存储介质中。因此在 2.0 版本中推出了冷热数据分层功能,冷热数据分层功能使 Apache Doris 可以将冷数据下沉到存储成本更加低廉的对象存储中,同时冷数据在对象存储上的保存方式也从多副本变为单副本,存储成本进一步降至原先的三分之一,同时也减少了因存储附加的计算资源成本和网络开销成本。通过实际测算,存储成本最高可以降低超过 70%。

14.png

了解更多:Apache Doris 冷热分层技术如何实现存储成本降低 70%?|新版本特性

支持部署在公有云/私有云/K8s:面对更多用户在公有云、私有云以及 K8s 等环境的部署要求,我们开发了 K8s Operator,可以实现对 FE、BE以及 Compute Node、Broker 等所有节点的部署、扩缩容、健康检查等一系列运维工作,此外还支持对 Compute Node 节点 Auto Scaling ,根据自机器的负载进行自动扩容。这一功能目前已经在社区用户中大规模试用,并将在后续的版本中正式发布出来。

15.png

实现跨集群复制:在 Apache Doris 2.0.0 版本中,我们同样引入 CCR 的功能在库/表级别将源集群的数据变更同步到目标集群,可以更好实现读写负载分离以及多机房备份,并可以更好支持不同场景的跨集群复制和灾备需求。

走向实时分析的下一步

回顾完在 2023 年的进展后,承前而启后,该聊聊正在做以及未来即将要做的事情。

定位于实时数据仓库,后续 Apache Doris 社区仍会继续坚守实时分析、融合统一及云原生化这三大方向不变,每一方向都有许多有意义的工作在陆续开展中。

01 更快的分析性能与更实时的数据写入及更新

查询引擎方面,在即将发布的 2.1 版本中,CBO 查询优化器将实现全自动的统计信息收集,并提供丰富的 Hint 语法,在优化器规则失效的时候可以支持手动调整规则,我们也将会发布 TPC-DS 的性能测试报告。查询算子落盘和多表物化视图是社区用户呼声已久的功能,也将于 2.1 版本加入进来,同时我们还将引入 Union All 算子并行执行来进一步加速 ETL 操作的执行性能,后续用户在 Apache Doris 进行大批量数据处理将会执行得更快更稳定更简易。我们还会引入新的 Join 算法,将多表 Join 性能进一步至之前的两倍。

WechatIMG764.jpg

实时数据写入方面,我们将对所有数据写入的语义进行统一,无论是关系型数据库、数据流、本地文件或者数据湖的数据文件,对于 Apache Doris 而言都将统一具象为关系表、可以通过 insert into 的统一语义来实现数据写入。同时我们还将简化数据写入的链路,通过内置的 Job 调度来执行数据写入,避免引入第三方的数据同步组件。我们将引入服务端攒批机制,在上游数据高频写入时通过服务端攒批来避免小文件合并问题、降低数据库的写入压力。

实时数据更新方面,Merge-on-Write 模式将会默认开启,以此实现任意列的灵活更新,后续将基于 Merge-on-Write 实现所有数据模型的统一,减少用户在各种数据模型上的选择。

在可观测性方面,我们将为用户提供全新的 Profile 便于用户定位算子执行情况,同时支持查询任务的进度动态展示,并可以集成至 Doris Manager 中以可视化的方式展现,这部分功能已经开发就绪、在 2.1 版本中即将上线。

17.png

02 更多查询分析场景的统一

18.png

在湖仓一体场景上,我们会充分结合多表物化视图与内置 Job 调度的能力,将物化视图拓展到数据湖的多种数据源上,无需任何其他组件、依靠自身调度能力即可实现从数据湖到数据仓库的 ETL 作业以及数仓分层建模。在 2.0 版本中我们已经实现了对 JDBC 数据源的写回操作,后续对数据的写入将会拓展到 Iceberg、Hudi、Paimon 等,实现数据查询分析的更完整闭环。

19.png

除了读取更多数据源的数据之外,Apache Doris 也在打通被外部访问的数据通道。目前 Doris 对外输出数据的接口采取了 MySQL 连接协议,在应对大规模数据读取或者数据科学场景时(例如 Pandas 之类的数据科学引擎),MySQL 协议的吞吐成为了系统瓶颈,因此在后续版本中我们引入了基于 Arrow Flight 的高速数据读取接口,直接通过 BE 将数据进行传输,在实际测试过程中数据吞吐性能较过去提升了超过 100 倍

20.png

在半结构化数据分析和日志分析场景中,我们会增加倒排索引对更加复杂类型的支持,包括对于 Array、Map、GEO 等复杂类型。同时应对日志场景对存储字段 Schema Less 的需求,我们会在 2.1 版本中引入 Variant 数据类型,可以支持任意类型、任意形状的 JSON 格式文档数据,可以支持自动动态地处理列增加或类型变更,完全不需要繁琐的 DDL 操作以及 Schema Change 操作。

21.png

在负载管理方面,我们仍会持续探索灵活的混合负载管理, 支持通过SQL 来创建和管理Workload Group 并调整资源配置,保证负载隔离性的同时实现资源利用率的最大化。

03 云原生和存算分离

在之前的文章中我们曾介绍到 SelectDB Cloud 存算分离版本将会合入社区,但代码结构整理、兼容性改造以及合入的工作量超过我们预期,好在这一工作已经进入尾声。在 Apache Doris 2.1 版本中所有代码结构的调整将会完成,预计在 2.2 版本中将会面向社区全面可用,届时大家都可以感受全新云原生架构带来的极致弹性,敬请期待。

22.png

与创新者同行

在演讲的最后,我想介绍下本次峰会筹备的幕后故事。我们一直在思考该传达什么样的理念给所有社区用户,但一直没有找到特别精准的表达。

在回顾了 Apache Doris 从诞生至今这十年的发展过程后,我们想到,这不就是一个讲述技术创新的故事么?

在 SQL on Hadoop 的时代,Doris 选择独立于 Hadoop 生态、不依赖 HDFS 进行数据存储、不依赖 Zookeeper 进行分布式管控,任一进程都可实现在线扩缩容并保证高可用;面对语法各异的大数据组件中,Doris 选择支持标准 SQL 并兼容 MySQL 协议,极大简化了用户的使用门槛;基于自研的预聚合存储引擎、物化视图和 MPP 执行框架,充分利用多机多核的并行计算能力,实现了大规模数据上的极速查询性能……正是因为坚持技术创新才使得 Apache Doris 的生命力愈加旺盛

到现如今,我们在 Apache Doris 中引入了诸多的功能创新点,倒排索引、行列混存、毫秒级在线 Schema Change、Merge-on-Write 写时合并、Variant 数据类型 …… 每一步都是在持续引领技术创新

所以这里的「与创新者同行」有几层含义:

  • 我们希望与热爱开源技术的开源贡献者们一起,以技术创新为数据世界带来些改变;
  • 我们希望把认可并信赖 Apache Doris 的用户代表聚集起来,以真实场景中的应用创新为更多人带来启发;
  • 我们也希望与上下游合作伙伴、云服务厂商一起,以产品创新为行业注入新的活力,为所有用户带来新的选择。

选择 Apache Doris,就是选择与众多创新者同行

在最后,我们也致敬每一位追风赶月的创新者们,也期待与更多创新者与一同前行,探索数据世界的更多可能性。

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

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

相关文章

数据挖掘:分类,聚类,关联关系,回归

数据挖掘: 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学&…

用于图像处理的高斯滤波器 (LoG) 拉普拉斯

一、说明 欢迎来到拉普拉斯和高斯滤波器的拉普拉斯的故事。LoG是先进行高斯处理,继而进行拉普拉斯算子的图像处理算法。用拉普拉斯具有过零功能,实现边缘岭脊提取。 二、LoG算法简述 在这篇博客中,让我们看看拉普拉斯滤波器和高斯滤波器的拉普…

某XX自考小程序的AES加密分析

前言 主要是报了自考在这个小程序上面做题,就研究了一下这个接口本文仅供学习交流使用,请勿随意传播。如有侵犯你的权益及时联系我删除。 一、抓包分析打开小程序,打开devtools 工具,这里就不啰嗦,直接上过程。 点击…

深入浅出理解ResNet网络模型+PyTorch实现

温故而知新,可以为师矣! 一、参考资料 论文:Identity Mappings in Deep Residual Networks 论文:Deep Residual Learning for Image Recognition ResNet详解PyTorch实现 PyTorch官方实现ResNet 【pytorch】ResNet18、ResNet20、…

LabVIEW示波器连续触发编程

LabVIEW示波器连续触发编程 niScopeEX Fetch Forever范例利用了如何设置硬件和驱动的优点来进行连续采集。 当NI-SCOPE设备被设置为采集预触发扫描,设备上的板载内存被用作一个环形缓冲。这样,无论触发何时到来,设备都可以追踪和检索所有要求…

使用 HTTP Client 轻松进行 API 测试

在开发过程中,我们经常需要测试 API 接口以确保其正常工作。JetBrains 的集成开发环境(IDE)如 CLion、IntelliJ IDEA、PyCharm 等,默认内置了 HTTP Client 插件,可以方便地进行API测试。本文将介绍如何使用HTTP Client…

共话医疗数据安全,美创科技@2023南湖HIT论坛,11月11日见

11月11日浙江嘉兴 2023南湖HIT论坛 如约而来 深入数据驱动运营管理、运营数据中心建设、数据治理和数据安全、数据资产“入表”等热点、前沿话题 医疗数据安全、数字化转型深耕者—— 美创科技再次深入参与 全新发布:医疗数据安全白皮书 深度探讨:数字…

提升中小企业效率的不可或缺的企业云盘网盘

相比之大型企业,中小型企业在挑选企业云盘工具更注重灵活性和成本。那么市面上有哪些企业云盘产品更适合中小企业呢? 说起中小企业不能错过的企业云盘网盘,Zoho Workdrive企业云盘绝对榜上有名! Zoho Workdrive企业云盘为用户提…

轻松按需缩放图片像素——批量处理图片,满足不同需求!

在图片使用过程中,我们经常需要按照不同的要求调整图片的像素大小。如果一张一张地手动调整,不仅耗时而且容易出错。这款软件可以帮助您轻松实现批量处理图片,按需缩放图片像素,让您的图片管理更加高效、便捷! 第一步…

反转链表 --- 递归回溯算法练习三

目录 1. 分析题意 2. 分析算法原理 2.1. 递归思路: 1. 挖掘子问题: 3. 编写代码 3.1. step 1: 3.2. step 2: 3.3. step 3: 3.4. 递归代码: 1. 分析题意 力扣原题链接如下: 206. 反转链…

ChatGPT 如何改变科研之路

《Nature》全球博士后调查[1]中约有三分之一的受访者正在使用人工智能聊天机器人来帮助完善文本、生成或编辑代码、整理其领域的文献等等。 来自巴西的 Rafael Bretas 在日本生活了十多年,日语说得很好。书面日语的各个方面,例如严格的礼貌等级制度&…

4面百度软件测试工程师的面试经验总结

没有绝对的天才,只有持续不断的付出。对于我们每一个平凡人来说,改变命运只能依靠努力幸运,但如果你不够幸运,那就只能拉高努力的占比。 2023年7月,我有幸成为了百度的一名测试工程师,从外包辞职了历经100…

多状态Dp问题——买卖股票的最佳时机含冷冻期

目录 一,题目 二,题目接口 三,解题思路及其代码 一,题目 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成…

自媒体项目详述

总体框架 本项目主要着手于获取最新最热新闻资讯,以微服务构架为技术基础搭建校内仅供学生教师使用的校园新媒体app。以文章为主线的核心业务主要分为如下子模块。自媒体模块实现用户创建功能、文章发布功能、素材管理功能。app端用户模块实现文章搜索、文章点赞、…

electron 内部api capturePage实现webview截图

官方文档 .capturePage([rect]) rect Rectangle (可选) - 要捕获的页面区域。 返回 Promise - 完成后返回一个NativeImage 在 rect内捕获页面的快照。 省略 rect 将捕获整个可见页面。 async function cap(){ let image await webviewRef.value.capturePage() console.log(im…

Android修行手册 - POI操作Excel常用样式(字体,背景,颜色,Style)

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…

Java学习 9.Java-数组 讲解及习题

一、数组的定义与使用 1.数组的基本概念 1.1 为什么要使用数组 数组是最简单的一种数据结构 组织一组相同类型数据的集合 数据结构本身是来描述和组织数据的 数据加结构 1.2.1 数组的创建 代码实现 new int 可省略; char[] chars{a,b,c};//定义一个整形类型数…

VS c++多文件编译

前言:记录下我这个菜鸡学习的过程,如有错误恳请指出,不胜感激! 1.简单多文件编译调试 文件目录: 编译: -g选项是告诉编译器生成调试信息,这样可以在程序崩溃或出现错误时更容易地进行调试。这…

MCSM面板搭建教程和我的世界Paper服务器开服教程

雨云游戏云VPS服务器用Linux搭建MCSM面板和Minecraft Paper1.20.2服务器教程。 本教程演示安装的MC服是Paper 1.20.2版,其他版本也可以参考本教程,差别不大。 本教程使用Docker来运行mc服,可以方便切换不同Java版本,方便安装多个…

STM32——NVIC中断优先级管理分析

文章目录 前言一、中断如何响应?NVIC如何分配优先级?二、NVIC中断优先级管理详解三、问题汇总 前言 个人认为本篇文章是我作总结的最好的一篇,用自己的话总结出来清晰易懂,给小白看也能一眼明了,这就是写博客的意义吧…