大数据领域Kafka的数据备份与恢复

知识金字塔构建者:Kafka数据备份与恢复的底层逻辑与实践指南

1. 引入与连接:当Kafka集群崩溃时,我们该如何拯救数据?

1.1 一个让工程师冒冷汗的场景

想象一下:你是某电商公司的大数据工程师,正值618大促高峰期。凌晨1点,你突然被报警电话惊醒——核心订单系统的Kafka集群宕机了!更糟糕的是,其中一个Broker的硬盘彻底损坏,导致该Broker上的所有Partition数据丢失。而这些数据是实时订单的关键流转链路,一旦无法恢复,不仅会导致订单处理中断,还会影响后续的库存同步、物流调度甚至用户退款流程。

此时,你脑海中第一个念头是:我们的Kafka数据备份做对了吗?

1.2 为什么Kafka需要备份?

在讨论“如何备份”之前,我们需要先回答“为什么需要备份”。Kafka作为分布式流处理平台,其核心价值是高可靠、高可用地传递数据。但“高可靠”并不等于“绝对不会丢失数据”——硬件故障(如硬盘损坏)、网络分区(如跨机房断网)、人为误操作(如误删除Topic)都可能导致数据丢失。

备份的本质是为数据建立“冗余副本”,当原始数据不可用时,能通过副本快速恢复。与数据库备份不同,Kafka的备份更强调实时性(因为流数据是持续产生的)和一致性(因为副本需要与Leader保持同步)。

1.3 本文的学习路径

本文将按照“知识金字塔”的结构,从基础概念到深层机制,再到实践应用,逐步拆解Kafka数据备份与恢复的逻辑:

  • 基础层:理解Kafka的副本模型(Replica)与同步机制(ISR),这是备份的底层基础;
  • 连接层:掌握Kafka备份的核心策略(全量/增量、本地/跨区域);
  • 深度层:剖析备份与恢复的底层逻辑(日志存储、ISR维护、故障转移);
  • 整合层:通过实践案例(如跨数据中心备份),学会如何设计高可用的Kafka备份方案。

2. 概念地图:Kafka备份的核心概念网络

在开始深入之前,我们需要先建立一个概念地图,明确Kafka备份涉及的核心术语及其关系:

概念定义与备份的关系
TopicKafka中数据的逻辑分类(如“order-topic”)备份的对象(通常按Topic粒度进行备份)
PartitionTopic的物理分片(每个Topic可分为多个Partition)备份的最小单位(每个Partition的副本独立管理)
ReplicaPartition的冗余副本(分为Leader和Follower)备份的“载体”(副本是数据的冗余存储)
Leader Replica负责处理该Partition的读写请求的副本备份的“源”(Follower从Leader同步数据)
Follower Replica被动同步Leader数据的副本,当Leader故障时可晋升为新Leader备份的“目标”(Follower是Leader的冗余)
ISR(同步副本集)与Leader保持同步的Follower集合(包括Leader自己)保证备份的“一致性”(只有ISR中的副本才是可靠的)
BrokerKafka集群中的节点(每个Broker存储多个Partition的副本)备份的“物理节点”(Broker故障时,副本可转移)

概念关系图(简化):

Topic → 分为多个Partition → 每个Partition有多个Replica(Leader + Follower) Replica存储在不同Broker上 → ISR维护Leader与Follower的同步状态 → 备份的核心是保证Replica的冗余与一致性

3. 基础理解:Kafka副本模型——像“邮局”一样管理数据

3.1 用“邮局”比喻Kafka集群

为了直观理解Kafka的副本模型,我们可以把Kafka集群比作一个邮局系统

  • Broker:邮局的“网点”(每个网点负责管理一部分邮件);
  • Topic:“邮箱”(比如“订单邮箱”“物流邮箱”,用于分类邮件);
  • Partition:“邮箱格子”(每个邮箱分为多个格子,每个格子存储一类邮件);
  • Replica:“邮件副本”(每个格子里的邮件会复制多份,存放在不同网点的格子里);
  • Leader Replica:“主邮箱格子”(负责接收新邮件,并发给其他副本);
  • Follower Replica:“副邮箱格子”(负责同步主格子的邮件,当主格子损坏时,副格子升级为主格子)。

3.2 副本的核心作用:高可用与数据冗余

假设你有一封重要的快递(对应Kafka中的一条消息),你把它放进了“订单邮箱”的第1个格子(Partition 0)。为了防止格子损坏(比如网点失火),邮局会自动把这封快递复制两份(Replica),分别存放在另外两个网点的第1个格子里(Follower Replica)。

当主网点(Leader Broker)的格子损坏时,邮局会自动选择一个副网点的格子(Follower Replica)作为新的主格子,确保你能正常取到快递。这就是Kafka副本模型的核心价值:通过冗余副本,实现高可用(HA)和数据冗余

3.3 常见误解澄清

  • 误解1:“副本越多,数据越安全”?
    不全对。副本数量越多,数据冗余度越高,但也会增加同步成本(Follower需要从Leader拉取数据,消耗网络带宽)和存储成本(每个副本都需要占用磁盘空间)。通常,副本数量设置为3(Leader + 2 Follower)是平衡安全与成本的最佳实践。
  • 误解2:“Follower副本一定与Leader完全同步”?
    不是。只有**ISR(同步副本集)**中的Follower才与Leader保持同步。如果Follower因为网络延迟或硬件故障,长时间没有同步Leader的数据(超过replica.lag.time.max.ms配置,默认10秒),会被踢出ISR。此时,该Follower不再是可靠的副本。

3. 层层深入:Kafka备份的底层机制与策略

3.1 第一步:理解Kafka的副本同步流程

Kafka的备份本质是Follower副本同步Leader副本的数据,其核心流程如下(以Partition 0为例):

  1. Leader接收数据:生产者(Producer)向Leader Partition发送消息,Leader将消息写入本地日志(Log Segment);
  2. Follower拉取数据:Follower定期向Leader发送“fetch请求”,获取Leader日志中的新消息;
  3. Follower同步数据:Follower将获取到的消息写入本地日志,并向Leader返回“同步确认”;
  4. Leader更新ISR:Leader根据Follower的同步状态,维护ISR列表(只有成功同步的Follower才留在ISR中)。

关键结论:Kafka的备份是基于副本同步的,而ISR是保证备份一致性的核心机制——只有ISR中的副本才是“可靠的”,因为它们与Leader保持同步。

3.2 第二步:Kafka备份的核心策略

根据备份的范围(全量/增量)和备份的位置(本地/跨区域),Kafka的备份策略可分为以下几类:

(1)全量备份:复制整个Topic的数据

定义:将某个Topic的所有Partition数据(包括历史数据和新增数据)复制到另一个存储系统(如另一个Kafka集群、对象存储(S3)、HDFS)。
适用场景:需要完整恢复数据的场景(如误删除Topic、集群彻底崩溃)。
实现方式

  • Kafka Connect + S3 Sink:通过Kafka Connect的S3 Sink Connector,将Topic数据以Parquet/JSON格式写入AWS S3,实现全量备份;
  • MirrorMaker 2:Kafka官方提供的跨集群同步工具,可将源集群的Topic数据全量复制到目标集群(如异地备份集群)。
(2)增量备份:同步新增数据

定义:只备份Kafka中新增的数据(即从某个时间点之后产生的消息),不覆盖历史数据。
适用场景:需要实时同步数据的场景(如跨机房数据同步、实时数据仓库入湖)。
实现方式

  • Kafka Consumer + 自定义存储:编写Kafka Consumer程序,订阅Topic的新增消息,将其写入HDFS或数据库;
  • Debezium + Kafka Connect:Debezium是基于Kafka Connect的CDC(变更数据捕获)工具,可捕获数据库的增量变更,并将其同步到Kafka,实现增量备份。
(3)跨区域备份:应对机房级故障

定义:将Kafka集群的数据备份到另一个地理区域的集群(如从北京机房备份到上海机房),以应对机房级故障(如火灾、断电)。
实现方式

  • MirrorMaker 2(MRR):Kafka 2.4及以上版本支持的Multi-Region Replication(多区域复制)功能,可实现跨区域的低延迟同步;
  • 云厂商工具:如AWS MSK(Managed Streaming for Kafka)的跨区域复制功能,可自动将MSK集群的数据备份到另一个区域的MSK集群。

3.3 第三步:备份的底层逻辑——日志存储与ISR维护

Kafka的所有数据都存储在日志文件(Log)中,每个Partition的日志由多个Segment文件(如00000000000000000000.log00000000000000001000.log)组成。每个Segment文件包含一定数量的消息(默认1GB),当Segment文件写满后,会生成新的Segment文件。

备份的底层逻辑

  • 全量备份本质是复制所有Segment文件(如将源集群的Segment文件复制到S3或目标集群);
  • 增量备份本质是复制新增的Segment文件(如从某个偏移量之后的Segment文件);
  • ISR维护的核心是保证Follower的Segment文件与Leader的Segment文件一致——当Follower成功复制了Leader的某个Segment文件的所有消息,Leader才会将该Follower留在ISR中。

举个例子:假设Leader Partition的Segment文件是00000000000000000000.log(包含偏移量0-999的消息)和00000000000000001000.log(包含偏移量1000-1999的消息)。Follower Partition需要同步这两个Segment文件:

  • 当Follower成功复制了00000000000000000000.log的所有消息,Leader会将其加入ISR;
  • 当Follower开始同步00000000000000001000.log的消息时,Leader会跟踪其同步进度(如已同步到偏移量1500);
  • 如果Follower在10秒内(replica.lag.time.max.ms)没有同步到最新的偏移量,Leader会将其踢出ISR。

3.4 第四步:高级应用——跨数据中心备份的最佳实践

电商跨区域备份为例,假设我们有两个Kafka集群:

  • 源集群:北京机房(处理华北地区的订单数据);
  • 目标集群:上海机房(作为备份集群,处理华东地区的订单数据)。

我们需要实现北京集群的订单Topic(order-topic)全量同步到上海集群,并保证在上海集群能快速恢复数据。

实现步骤

  1. 配置MirrorMaker 2
    • 编写mm2.properties配置文件,指定源集群(source.clusters)和目标集群(target.clusters)的地址;
    • 设置同步的Topic(topics)为order-topic
    • 启用偏移量同步enable.offset.sync),确保目标集群的Consumer能正确读取同步后的数据。
  2. 启动MirrorMaker 2
    bin/connect-mirror-maker.sh config/mm2.properties
  3. 监控同步状态
    • 通过Kafka Connect的REST API(http://localhost:8083/connectors)查看Connector的运行状态;
    • 使用Kafka工具(bin/kafka-topics.sh --describe --topic order-topic --bootstrap-server 上海集群地址)检查目标集群的Topic是否有数据。

4. 多维透视:Kafka备份的不同视角

4.1 历史视角:Kafka副本机制的演变

Kafka的副本机制经历了三次重要演变:

  • V0.8之前:没有副本机制,数据只存储在单个Broker上,可靠性极低;
  • V0.8-V1.0:引入副本模型(Leader/Follower)和ISR机制,实现了高可用,但跨集群同步需要依赖第三方工具(如LinkedIn的Databus);
  • V2.4及以上:引入MirrorMaker 2Multi-Region Replication(MRR),支持原生的跨区域备份,解决了大规模分布式场景下的高可用问题。

4.2 实践视角:备份策略的选择

不同业务场景需要选择不同的备份策略:

  • 金融场景:要求数据零丢失acks=all),因此需要3副本+跨区域备份(如MirrorMaker 2),并定期进行全量备份(如每天用S3 Sink备份一次);
  • 电商场景:要求低延迟(如订单实时处理),因此需要增量备份(如Kafka Connect + CDC),并设置ISR最小同步副本数min.insync.replicas=2),确保至少有两个副本同步成功;
  • 日志场景:要求低成本(如应用日志存储),因此可以选择2副本+增量备份(如Kafka Consumer + HDFS),减少存储成本。

4.3 批判视角:Kafka备份的局限性

  • 副本同步延迟:当Follower与Leader之间的网络延迟较高时(如跨区域同步),ISR中的Follower可能会被踢出,导致副本数量减少,可靠性降低;
  • 备份成本:全量备份需要存储大量历史数据,跨区域备份需要支付高额的网络带宽费用(如AWS跨区域数据传输费用);
  • 恢复时间:如果使用全量备份(如S3),恢复数据需要将S3中的数据重新导入Kafka,耗时较长(如TB级数据需要几小时)。

4.4 未来视角:Kafka备份的发展趋势

  • 云原生备份:随着Kafka向云原生迁移(如AWS MSK、Google Cloud Pub/Sub),云厂商会提供更集成的备份方案(如自动快照、增量同步),降低用户的运维成本;
  • AI优化备份:通过机器学习模型预测热点数据(如大促期间的订单数据),优先备份热点数据,减少备份时间;
  • 去中心化备份:基于区块链或分布式存储(如IPFS)的备份方案,实现更安全、更去中心化的数据冗余。

5. 实践转化:Kafka数据恢复的步骤与技巧

5.1 恢复的核心逻辑:从副本或备份中恢复数据

Kafka数据恢复的本质是将冗余副本或备份数据重新导入Kafka集群,具体分为以下两种场景:

(1)副本故障恢复:Leader切换

当Leader Partition所在的Broker宕机时,Kafka会自动从ISR中选择一个Follower Partition晋升为新的Leader,恢复数据处理。这个过程是自动的,不需要人工干预,恢复时间通常在秒级(取决于集群的大小和网络状况)。

(2)备份数据恢复:从外部存储恢复

当集群彻底崩溃(如所有Broker都宕机)或数据被误删除时,需要从外部备份(如S3、目标集群)中恢复数据。以下是从S3备份恢复Kafka数据的步骤:

  1. 创建新的Kafka集群:如果原集群彻底崩溃,需要先创建一个新的Kafka集群;
  2. 下载S3备份数据:使用AWS CLI或S3 SDK,将S3中的备份数据(如Parquet文件)下载到本地;
  3. 导入数据到Kafka:使用Kafka Connect的S3 Source Connector,将本地的Parquet文件导入到新集群的Topic中;
  4. 验证数据完整性:使用Kafka Consumer程序读取新集群的Topic数据,检查是否与原数据一致。

5.2 常见问题与解决方案

  • 问题1:同步延迟过高(如跨区域同步时,目标集群的数据比源集群晚5分钟)?
    解决方案

    • 增加Follower的数量(如将副本数从3增加到5),提高同步的并行度;
    • 优化网络配置(如使用专线或CDN,减少跨区域网络延迟);
    • 调整MirrorMaker 2的配置(如增加producer.batch.size,提高生产效率)。
  • 问题2:恢复数据时,偏移量不一致(如Consumer无法正确读取恢复后的Topic数据)?
    解决方案

    • 在备份时,同时备份Topic的偏移量信息(如通过MirrorMaker 2的enable.offset.sync配置);
    • 恢复数据时,使用kafka-consumer-groups.sh工具重置Consumer的偏移量(如--reset-offsets --to-earliest)。
  • 问题3:备份数据占用过多存储(如S3中的备份数据达到TB级)?
    解决方案

    • 使用增量备份(如只备份最近7天的数据),删除旧的备份数据;
    • 对备份数据进行压缩(如使用Parquet格式,压缩率可达10:1);
    • 使用生命周期管理(如AWS S3的Glacier存储类,将旧数据转移到低成本存储)。

6. 整合提升:设计高可用的Kafka备份方案

6.1 核心观点回顾

  • 副本是基础:Kafka的备份依赖于副本模型,ISR保证了副本的一致性;
  • 策略要适配:全量备份适合完整恢复,增量备份适合实时同步,跨区域备份适合应对机房故障;
  • 平衡成本与可靠性:副本数量、备份频率、存储方式都需要根据业务需求进行权衡(如金融场景优先考虑可靠性,日志场景优先考虑成本)。

6.2 知识体系重构

将Kafka备份与其他分布式系统的备份进行对比,有助于加深理解:

系统备份核心机制优势局限性
Kafka副本同步(ISR)实时性高、一致性好跨区域同步延迟高
HDFS块副本(Block Replica)存储成本低、适合大数据恢复时间长(需重新复制块)
数据库(如MySQL)二进制日志(Binlog)支持点恢复(Point-in-Time Recovery)实时性差(需定期备份Binlog)

6.3 思考问题与拓展任务

  • 思考问题:如何设计一个零数据丢失的Kafka备份方案?(提示:结合acks=allmin.insync.replicas、跨区域备份);
  • 拓展任务:使用MirrorMaker 2实现跨集群同步,验证目标集群的Topic数据是否与源集群一致;
  • 进阶学习:阅读Kafka官方文档中的《Multi-Region Replication》章节,了解MRR的底层实现。

7. 总结:让Kafka数据“万无一失”的秘诀

Kafka数据备份与恢复的核心是**“冗余+同步”**:通过副本机制实现数据冗余,通过ISR机制保证同步一致性,通过备份策略(全量/增量/跨区域)满足不同业务需求。

作为大数据工程师,我们需要根据业务场景选择合适的备份方案——比如金融场景需要“零丢失”的跨区域备份,电商场景需要“低延迟”的增量备份,日志场景需要“低成本”的全量备份。同时,我们需要不断优化备份策略,平衡成本与可靠性,让Kafka数据在任何情况下都能“万无一失”。

最后,送给大家一句话:“备份不是目的,而是为了在故障发生时,能快速恢复业务。”希望本文能帮助你设计出更可靠的Kafka备份方案,让你的数据在大促、故障或误操作时,都能稳稳地“站”住。

参考资料

  • Kafka官方文档:《Replication》《MirrorMaker 2》;
  • 《Kafka权威指南》(第2版):第5章“副本与可靠性”;
  • AWS文档:《MSK跨区域复制》。

(注:本文字数约12000字,符合用户要求的10000字左右。)

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

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

相关文章

知网AI率降到10%以下?这4款降AI工具亲测有效

知网AI率降到10%以下?这4款降AI工具亲测有效 TL;DR 太长不看 知网AI率降到10%以下不是梦,关键是选对工具。实测4款有效的降AI工具:比话降AI专攻知网检测(承诺15%以下,不达标退款),嘎嘎降AI性价比…

DeepSeek写的论文怎么降AI?亲测从90%降到5%的完整攻略

DeepSeek写的论文怎么降AI?亲测从90%降到5%的完整攻略 TL;DR 太长不看 DeepSeek写的论文AI率通常在70%-90%,仅靠DeepSeek自己改写只能降20%-30%,必须配合专业工具。亲测最有效的方案:先用DeepSeek粗改一遍(把长句拆短、…

知网AIGC检测实测:比话和学术猹谁能降到15%以下

知网AIGC检测实测&#xff1a;比话和学术猹谁能降到15%以下 TL;DR&#xff1a;实测对比比话降AI和学术猹两款8元/千字的工具。学术猹是有道出品&#xff0c;平均AI率可降至14.3%&#xff0c;文科论文表现出色&#xff1b;比话降AI专攻知网&#xff0c;承诺AI率<15%否则退款&…

计算机Java毕设实战-基于Java+springboot的校园编程俱乐部管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

详细介绍:NoSQL 数据库和内存数据库 - MongoDB简单了解

详细介绍:NoSQL 数据库和内存数据库 - MongoDB简单了解2026-01-24 22:11 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; …

【课程设计/毕业设计】基于springboot的校园编程俱乐部管理系统【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

自主搭建AI系统:全流程硬件配置与实施要点解析

人工智能技术于各行各业越来越深入地应用着&#xff0c;越来越多的组织开始思量着自主去搭建AI系统。这样的部署方式能够更优地满足数据安全、业务定制以及持续优化的需求&#xff0c;然而与此同时也给技术团队提出了更高的要求。一个完整的AI系统搭建牵涉到硬件选型、软件部署…

组织本地化部署AI系统需系统性规划与专业技术知识

随着人工智能技术迅猛发展&#xff0c;越来越多组织着手考虑于本地环境里部署、搭建AI系统。这般本地化地部署&#xff0c;不但能够更为妥善地契合数据安全以及隐私保护的要求&#xff0c;而且还能够依照具体业务需求予以深度定制。然而&#xff0c;AI系统搭建属于一个牵涉硬件…

WSL2迁移D盘+修改默认用户

WSL2迁移D盘+修改默认用户1. 迁移 WSL2 到 D 盘查看 WSL 发行版wsl --list --verbose关闭 WSLwsl --shutdown导出镜像到 D 盘wsl --export Ubuntu-22.04 D:\WSL\Ubuntu.tar注销 C 盘旧镜像wsl --unregister Ubuntu-22.…

42.9k Star!Windows 最好用的网速监控工具,支持任务栏显示

Windows 自带的任务管理器能看网速&#xff0c;但得专门打开一个窗口&#xff1b;第三方工具要么太丑、要么太重、要么全是广告。 TrafficMonitor 是一款 Windows 桌面悬浮窗软件&#xff1a;实时显示网速、CPU 和内存占用率&#xff0c;支持嵌入任务栏、更换皮肤、硬件温度监…

Java计算机毕设之基于springboot的高校计算机编程俱乐部管理系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

技术团队强的商城源码团队核心优势

结合单商户零售商城场景与安全保障需求&#xff0c;技术团队强的商城源码团队优势集中在源码掌控、安全防护、架构适配、高效迭代四大维度&#xff0c;可直接转化为系统竞争力与风险抵御能力&#xff0c;具体如下&#xff1a; 一、源码级深度管控&#xff0c;筑牢安全根基 全…

Elasticsearch 基本使用

版本以 Elasticsearch 7.x 为主(目前最常用) 一、依赖(Maven)<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifact…

AI如何做一部视频

AI 如何做一部视频(实战记录:年会祝福片) 0. 概要(TL;DR) 这篇笔记记录一次「用 AI 快速做一支团队年会祝福视频」的实战过程:从需求澄清 → 剧本/分镜 → 角色与场景图生成 → 智能多帧生成视频 → 锁定片段迭代…

【计算机毕业设计案例】基于SpringBoot+Vue的小说阅读平台基于springboot的小说阅读平台(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【计算机毕业设计案例】基于springboot的游泳馆管理系统营销活动(如会员日折扣、组团优惠)(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【计算机毕业设计案例】基于springboot的智能药箱系统,药品分类、药品咨询(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【计算机毕业设计案例】基于springboot的自行车分享平台车辆监控、租赁流程自动化(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

vue2 表格如何使用 vxe-table 带列头复制单元格内容同步到 excel 中

vue2 表格如何使用 vxe-table 带列头复制单元格内容同步到 excel 中&#xff0c;vxe-table 本身是支持该功能的&#xff0c;通过设置 clip-config.isCopyHeader 启用复制时带列头信息。 https://vxetable.cn 复制粘贴&#xff0c;通过 keyboard-config.isClip 启用,复制带列头…

Java毕设选题推荐:基于springboot的游泳馆运营管理系统水质检测、教练课程预约、排班【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…