当前位置: 首页 > news >正文

RocketMQ与kafka如何解决消息丢失问题?

0 前言

  消息丢失基本是分布式MQ中需要解决问题,消息丢失时保证数据可靠性的范畴。如何保证消息不丢失程序员面试中几乎不可避免的问题。本文主要说明RocketMQ和Kafka在解决消息丢失问题时,在生产者、Broker和消费者之间如何解决消息丢失问题。

1.RocketMQ如何解决消息丢失问题?

  首先,生产者发送消息的时候,怎么保证消息不丢失呢?我记得RocketMQ有同步发送和异步发送两种方式。同步发送的话,生产者会等待Broker的确认,如果收到确认响应,就说明消息已经成功存储了。而异步发送的话,虽然性能更好,但可能在未收到确认前就继续发送,这样如果网络出现问题,可能导致消息丢失。所以生产者这边,应该推荐使用同步发送,并且处理发送失败的情况,比如重试。另外,事务消息也是一种机制,确保消息和本地事务的一致性,比如下单和扣库存的操作,通过事务消息来保证两者都成功或者都回滚。
  然后是Broker端,消息存储的可靠性。Broker接收到消息后,默认是同步刷盘还是异步刷盘呢?异步刷盘性能好,但可能在Broker宕机时丢失未刷盘的数据,而同步刷盘每次写入都要等磁盘写入完成,这样即使宕机,消息也不会丢失。所以Broker的配置需要根据可靠性和性能的需求来调整。另外,主从复制机制,也就是Replication,也是关键。Broker可以配置成同步复制,这样主节点写入后需要等待从节点确认,这样即使主节点故障,从节点还能提供服务,保证消息不丢失。如果只是异步复制,主节点写入成功就返回,但此时从节点可能还没复制,主节点宕机会导致数据丢失。
接下来是消费者端。消费者拉取消息后,如果处理完毕但没有正确返回消费成功的状态,Broker可能会认为消息未被消费,导致重复投递或者消息丢失。所以消费者应该在处理完消息后,返回CONSUME_SUCCESS,如果处理失败,返回RECONSUME_LATER,这样消息会被重新投递。另外,消费者需要保证处理逻辑的幂等性,避免重复消息导致的问题。比如,可以通过数据库的唯一键或者记录消息ID来防止重复处理。
  还有消息重试机制,RocketMQ默认有重试策略,消费者如果消费失败,消息会被重试多次,超过次数后进入死信队列,这样至少不会丢失,而是有记录可以后续处理。同时,定期巡检和监控日志,比如发送和消费的日志,以及Broker的存储状态,可以及时发现潜在问题。备份和容灾机制,比如多副本、跨机房部署,也能在极端情况下防止数据丢失。
  不过,用户可能想知道这些机制的具体实现细节,或者如何配置。比如,生产者发送消息时设置重试次数,Broker配置同步刷盘和同步复制,消费者手动确认并处理幂等性。此外,可能还需要考虑网络分区的情况,或者Broker集群的故障转移机制。总之,需要从消息的生命周期各个阶段来考虑,生产、存储、消费,每个环节都要有相应的措施来防止消息丢失。

RocketMQ 通过多种机制在消息生命周期的各个阶段(生产、存储、消费)保障消息不丢失,具体方案如下:

1.1. 生产者端确保消息可靠发送

1.同步发送 + 重试机制

  • 生产者使用 send() 同步发送,等待 Broker 返回写入确认(ACK)。若发送失败或超时,自动重试(默认重试 2 次,可配置)。
  • 事务消息
      通过两阶段提交确保本地事务与消息发送的一致性(如订单创建与消息发送原子化):
      1.发送半事务消息(prepare 状态)。
      2.执行本地事务,提交或回滚。
      3.Broker 根据本地事务结果提交或丢弃消息。

1.2. Broker端确保消息可靠存储

  • 同步刷盘(flushDiskType=SYNC_FLUSH)
    Broker 将消息持久化到磁盘后再返回 ACK,避免内存数据丢失(性能较低但可靠性高)。
  • 多副本机制(主从同步)
    配置 BrokerRole=SYNC_MASTER,主节点写入后需等待从节点(Slave)同步完成再返回 ACK,防止主节点宕机数据丢失。
# Broker 配置
brokerRole=SYNC_MASTER
flushDiskType=SYNC_FLUSH
  • CommitLog 存储设计
    消息顺序追加写入 CommitLog 文件,结合内存映射(MMAP)提升写入效率,同时定期刷盘保证持久化。

1.3. 消费者端确保消息可靠消费

  • 手动确认(ACK)机制
    消费者处理完消息后显式返回 CONSUME_SUCCESS,Broker 才会标记消息为已消费。若消费失败,返回 RECONSUME_LATER 触发重试(默认最多 16 次)。
  • 消费幂等性
    消费者需设计幂等逻辑(如数据库唯一键、Redis 去重),避免因重试导致重复消费。

1.4. 故障恢复与监控

  • 消息重试队列 & 死信队列
    消费失败的消息进入重试队列,超过最大重试次数后转入死信队列,供人工处理,避免消息丢弃。
  • Broker 高可用集群
    部署多节点 Broker 集群(如 2M-2S 架构),结合 NameServer 实现故障自动切换。
  • 监控与告警
    监控生产/消费速率、堆积量、Broker 磁盘使用率等指标,及时发现异常。

总结配置要点

在这里插入图片描述

通过上述机制,RocketMQ 在分布式场景下实现了高可靠的消息传输,需根据业务场景权衡性能与可靠性(如异步刷盘 vs 同步刷盘)。

2.Kafka

  对于生产者端,Kafka的acks配置是关键。用户可能知道同步发送,但需要详细说明不同的acks设置(0、1、all)以及它们对消息可靠性的影响。同时,重试机制和幂等生产者的作用也很重要,需要解释清楚。
  Broker端方面,副本机制和ISR集合的概念是关键。需要说明分区副本如何同步,以及unclean.leader选举的影响。用户可能对min.insync.replicas参数不太熟悉,需要举例说明其作用。另外,日志刷盘策略(flush和fsync)虽然默认是异步的,但也要提到如何配置以增加可靠性,同时权衡性能。
  消费者端的问题主要是偏移量提交。自动提交可能导致消息丢失,所以需要建议使用手动提交,并处理好在消费逻辑中的异常。消费者可能因为崩溃而重复处理,但这里重点是避免丢失,所以需要强调在处理完消息后再提交偏移量。

  另外,用户可能对Kafka和RocketMQ的机制差异感兴趣。比如,RocketMQ有事务消息,而Kafka通过事务生产者来实现类似功能。不过这可能属于更高阶的用法,用户如果没有提到事务,可能暂时不需要深入,但可以简要提及。
  还要考虑用户的实际应用场景。比如,他们的系统是否要求高吞吐量,是否能接受同步刷盘带来的性能损耗。在配置建议上,需要给出平衡可靠性和性能的示例,比如acks=all和min.insync.replicas=2,同时提醒监控和运维的重要性,比如监控副本滞后和磁盘健康。
  可能用户还有一些隐含的问题,比如如何监控消息是否丢失,或者出现故障时如何恢复。这些可以作为补充内容,但重点还是先回答如何防止丢失的机制。
  总结起来,需要结构清晰地分阶段讲解,每个阶段的可能问题及解决方案,结合配置参数和最佳实践,让用户能够对照RocketMQ的解决方案,理解Kafka的不同之处和相似点,从而做出合理的技术决策。

Kafka 通过其分布式架构和多副本机制保障消息可靠性,但需要合理配置才能有效避免消息丢失。以下是 Kafka 解决消息丢失问题的核心方案:

2.1 生产者端确保消息成功发送

  • acks 配置
    通过 acks 参数控制 Broker 对消息持久化的确认策略:
    1.acks=0:不等待确认(可能丢失消息,性能最高)。
    2.acks=1:等待 Leader 副本写入成功(默认,可能因 Leader 宕机丢失数据)。
    3.acks=all(或 acks=-1):等待所有 ISR(In-Sync Replicas) 副本写入成功(最安全)。
properties.put("acks", "all");  // 确保所有 ISR 副本写入成功
  • 重试机制
    配置 retries 参数(默认 0)启用自动重试,结合 delivery.timeout.ms 控制重试超时:
properties.put("retries", 3);          // 重试次数
properties.put("delivery.timeout.ms", 120000);  // 总超时时间
  • 幂等生产者(Exactly-Once)
    启用幂等性(enable.idempotence=true),避免网络重试导致消息重复写入:
properties.put("enable.idempotence", "true");  // 避免重复写入

2.2 Broker 端确保消息可靠存储

  • 多副本机制(Replication)
    每个分区(Partition)配置多个副本(如 replication.factor=3),Leader 副本处理读写,Follower 副本同步数据:
# 创建 Topic 时指定副本数
bin/kafka-topics.sh --create --topic my_topic --partitions 3 --replication-factor 3
  • ISR 机制(In-Sync Replicas)
    Broker 维护 ISR 列表(与 Leader 数据同步的副本),只有 ISR 中的副本才能参与 Leader 选举。通过 min.insync.replicas 设置最小 ISR 副本数(例如 min.insync.replicas=2),确保消息写入足够副本:
# Broker 配置
min.insync.replicas=2
  • 避免脏 Leader 选举
    配置 unclean.leader.election.enable=false,禁止非 ISR 副本成为 Leader(防止数据丢失):
# Broker 配置
unclean.leader.election.enable=false
  • 数据刷盘策略
    Kafka 默认依赖操作系统的页缓存(Page Cache)异步刷盘,可通过 flush.messages 和 flush.ms 强制刷盘(性能损耗大,慎用)。

2.3. 消费者端确保消息正确消费

  • 手动提交偏移量(Offset)
    关闭自动提交(enable.auto.commit=false),在消息处理完成后手动提交 Offset,避免消息未处理完就提交 Offset 导致丢失:
properties.put("enable.auto.commit", "false");  // 关闭自动提交while (true) {ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));for (ConsumerRecord<String, String> record : records) {// 处理消息processMessage(record);}consumer.commitSync();  // 手动同步提交 Offset
}
  • 消费幂等性
    消费者需设计去重逻辑(如数据库唯一约束、Redis 记录已处理 Offset),避免因重试导致重复消费。

2.4. 容灾与运维保障

  • 监控 ISR 状态
    监控分区的 ISR 副本数量和 Lag(滞后量),确保副本同步正常。
# 查看 Topic 分区状态
bin/kafka-topics.sh --describe --topic my_topic
  • 数据保留策略
    配置合理的 retention.ms(如 7 天),避免因磁盘空间不足删除未消费的消息:
# 设置 Topic 数据保留时间
bin/kafka-configs.sh --alter --topic my_topic --add-config retention.ms=604800000
  • 跨机房容灾(可选)
    使用 MirrorMaker 或 Cluster Linking 跨集群复制数据,实现异地容灾。

2.5 关键配置对比

在这里插入图片描述

总结

  • 生产者:使用 acks=all + 幂等生产者 + 重试。

  • Broker:多副本(replication.factor≥3) + min.insync.replicas≥2。

  • 消费者:手动提交 Offset + 消费逻辑幂等。

  Kafka 的可靠性依赖于副本机制和 ISR 设计,但默认配置(如 acks=1)可能无法保证强一致性。需根据业务场景权衡可靠性与性能(如 acks=all 会降低吞吐量)。

相关文章:

RocketMQ与kafka如何解决消息丢失问题?

0 前言 消息丢失基本是分布式MQ中需要解决问题&#xff0c;消息丢失时保证数据可靠性的范畴。如何保证消息不丢失程序员面试中几乎不可避免的问题。本文主要说明RocketMQ和Kafka在解决消息丢失问题时&#xff0c;在生产者、Broker和消费者之间如何解决消息丢失问题。 1.Rocket…...

每日Attention学习23——KAN-Block

模块出处 [SPL 25] [link] [code] KAN See In the Dark 模块名称 Kolmogorov-Arnold Network Block (KAN-Block) 模块作用 用于vision的KAN结构 模块结构 模块代码 import torch import torch.nn as nn import torch.nn.functional as F import mathclass Swish(nn.Module)…...

【前端】ES6新特性汇总

本文作者&#xff1a; slience_me ES6新特性汇总 1. let声明变量 1&#xff09;let作用域 // var 声明的变量往往会越域 // let 声明的变量有严格的局部作用域 {var a 1;let b 2; } console.log(a); // 1 console.log(b); // 报错 b is not defined2&#xff09;声明次数 …...

2024 CyberHost 语音+图像-视频

项目&#xff1a;CyberHost: Taming Audio-driven Avatar Diffusion Model with Region Codebook Attention 音频驱动的身体动画面临两个主要挑战&#xff1a;&#xff08;1&#xff09;关键人体部位&#xff0c;如面部和手部&#xff0c;在视频帧中所占比例较小&#x…...

Git命令摘录

使用 Git 升级软件通常是指通过 Git 仓库获取软件的最新版本或更新代码。以下是详细的步骤和方法&#xff1a; 1. 克隆软件仓库 如果这是你第一次获取软件代码&#xff0c;可以使用 git clone 命令将远程仓库克隆到本地。 git clone <仓库地址> 例如&#xff1a; git cl…...

DeepSeek24小时写作机器人,持续创作高质量文案

内容创作已成为企业、自媒体和创作者的核心竞争力。面对海量的内容需求&#xff0c;人工创作效率低、成本高、质量参差不齐等问题日益凸显。如何在有限时间内产出高质量内容&#xff1f;DeepSeek写作机器人&#xff0c;一款24小时持续创作的智能工具&#xff0c;为企业和个人提…...

Python 面向对象的三大特征

前言&#xff1a;本篇讲解面向对象的三大特征&#xff08;封装&#xff0c;继承&#xff0c;多态&#xff09;&#xff0c;还有比较细致的&#xff08;类属性类方法&#xff0c;静态方法&#xff09;&#xff0c;分步骤讲解&#xff0c;比较适合理清楚三大特征的思路 面向对象的…...

在mac中安装Colima使用docker(替代Docker Desktop)

目录 推荐方案&#xff1a;Colima Docker CLI&#xff08;原生 ARM 支持&#xff09; 步骤 1: 安装必需工具 步骤 2: 启动 Colima (优化 ARM 虚拟机) 步骤 3: 绑定 Docker CLI 到 Colima 步骤 4: 验证 Docker 运行 方案对比与注意事项 常见陷阱 卸载残留配置&#xff…...

YOLO11网络结构以及改进1

YOLO11 1.YOLO11网络结构图在哪里&#xff1f;2.对应的网络结构图3.每一个模块详解3.1 Conv模块3.2关于卷积模块3.3 关于给各个模块指定参数的细节 4.加入CBAM 1.YOLO11网络结构图在哪里&#xff1f; 2.对应的网络结构图 3.每一个模块详解 3.1 Conv模块 位置&#xff1a;ultr…...

EtherNetIP转ModbusTCP网关,给风电注入“超级赛亚人”能量

EtherNetIP转ModbusTCP网关&#xff0c;给风电注入“超级赛亚人”能量 在工业通信领域&#xff0c;常常需要将不同网络协议的设备和系统连接起来&#xff0c;以实现更高效的数据交互和系统集成。比如&#xff0c;把EtherNet/IP设备及其网络连接到ModbusTCP网络系统&#xff0c…...

30天开发操作系统 第 20 天 -- API

前言 大家早上好&#xff0c;今天我们继续努力哦。 昨天我们已经实现了应用程序的运行, 今天我们来实现由应用程序对操作系统功能的调用(即API, 也叫系统调用)。 为什么这样的功能称为“系统调用”(system call)呢&#xff1f;因为它是由应用程序来调用(操作)系统中的功能来完…...

DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件

1 DeepSeek处理自有业务的案例&#xff1a;让AI给你写一份小众编辑器(EverEdit)的语法着色文件 1.1 背景 AI能力再强&#xff0c;如果不能在企业的自有业务上产生助益&#xff0c;那基本也是一无是处。将企业的自有业务上传到线上训练&#xff0c;那是脑子进水的做法&#xff…...

在香橙派5 NPU上使用Yolov5

【香橙派】使用NPU部署Yolov5的完整解决方案 香橙派使用NPU部署Yolov5的完整解决方案 Orangepi 5 Pro(香橙派5pro)部署yolov5 RK3588实战&#xff1a;调用npu加速&#xff0c;yolov5识别图像、ffmpeg发送到rtmp服务器 香橙派5 RK3588 yolov5模型转换rknn及部署踩坑全记录 orang…...

常用排序算法

1. 基础排序算法 1.1 冒泡排序&#xff08;Bubble Sort&#xff09; 原理&#xff1a; 依次比较相邻元素&#xff0c;将较大的元素逐步"冒泡"到右侧。 def bubble_sort(arr):n len(arr)for i in range(n):swapped Falsefor j in range(0, n-i-1):if arr[j] >…...

MySQL判空函数--IFNULL函数的使用

文章目录 IFNULL函数介绍IFNULL函数的语法举例相关扩展 IFNULL函数介绍 在MySQL中&#xff0c;IFNULL函数用于判断给定的表达式是否为NULL。如果表达式为NULL&#xff0c;则IFNULL函数返回指定的替代值&#xff1b;如果表达式不为NULL&#xff0c;则返回表达式本身的值。 IFN…...

Git 设置代理

设置 HTTP 和 HTTPS 代理 运行以下命令来配置 Git 的 HTTP 和 HTTPS 代理&#xff1a; git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy https://127.0.0.1:7890 验证代理设置 你可以通过以下命令检查代理是否设置成功&#xff1a; g…...

nsc account 及user管理

从安全角度&#xff0c;推荐使用sign 模式进行nats account及用户管理 把权限放到account level 用户密码泄露可以通过快速更换用户可以设置过期日期&#xff0c;进行安全轮换 此外通过nsc 管理用户和权限&#xff0c;可以统一实现全局管控&#xff0c;包括subject管控&#…...

llama.cpp部署 DeepSeek-R1 模型

一、llama.cpp 介绍 使用纯 C/C推理 Meta 的LLaMA模型&#xff08;及其他模型&#xff09;。主要目标llama.cpp是在各种硬件&#xff08;本地和云端&#xff09;上以最少的设置和最先进的性能实现 LLM 推理。纯 C/C 实现&#xff0c;无任何依赖项Apple 芯片是一流的——通过 A…...

NO.18十六届蓝桥杯备战|循环嵌套|乘法表|斐波那契|质数|水仙花数|(C++)

循环嵌套 循环嵌套的使⽤ while &#xff0c; do while &#xff0c; for &#xff0c;这三种循环往往会嵌套在⼀起才能更好的解决问题&#xff0c;就是我们所说的&#xff1a;循环嵌套。这三种循环都可以任意嵌套使⽤ ⽐如&#xff1a; 写⼀个代码&#xff0c;打印⼀个乘法⼝…...

用什么办法能实现ubuntu里面运行的自己开发的python程序能自动升级。

要实现Ubuntu中自己开发的Python程序自动升级&#xff0c;可以通过以下几种方式&#xff1a; 1. 使用 Git 仓库 定时任务 如果你的Python程序托管在Git仓库中&#xff0c;可以通过定时拉取最新代码来实现自动升级。 步骤&#xff1a; 确保Python程序在Git仓库中。在Ubuntu上…...

org.apache.kafka.common.errors.TimeoutException

个人博客地址&#xff1a;org.apache.kafka.common.errors.TimeoutException | 一张假钞的真实世界 使用kafka-console-producer.sh向远端Kafka写入数据时遇到以下错误&#xff1a; $ bin/kafka-console-producer.sh --broker-list 172.16.72.202:9092 --topic test This is …...

【AI实践】deepseek支持升级git

当前Windows 11 WSL的git是2.17&#xff0c;Android Studio提示需要升级到2.19版本 网上找到指导文章 安装git 2.19.2 cd /usr/src wget https://www.kernel.org/pub/software/scm/git/git-2.19.2.tar.gz tar xzf git-2.19.2.tar.gz cd git-2.19.2 make prefix/usr/l…...

IntelliJ IDEA 2024.1.4版无Tomcat配置

IntelliJ IDEA 2024.1.4 (Ultimate Edition) 安装完成后&#xff0c;调试项目发现找不到Tomcat服务&#xff1a; 按照常规操作添加&#xff0c;发现服务插件中没有Tomcat。。。 解决方法 1、找到IDE设置窗口 2、点击Plugins按钮&#xff0c;进入插件窗口&#xff0c;搜索T…...

利用Firewalld和Iptables实现IP端口限制与开放

这里写目录标题 前言一、FirewalldIP端口限制1.1 确认启动状态1.2 启动Firewalld1.3 查看当前连接到Nacos的IP1.4 添加访问规则1.5 重新加载配置1.6 查看当前活动的规则列表1.7 移除某个规则 二、Firewalld 开放端口2.1 开放 6379端口2.2 重新加载防火墙2.3 验证规则 三、Iptab…...

两步在 Vite 中配置 Tailwindcss

第一步&#xff1a;安装依赖 npm i -D tailwindcss tailwindcss/vite第二步&#xff1a;引入 tailwindcss 更改配置 // src/main.js import tailwindcss/index// vite.config.js import vue from vitejs/plugin-vue import tailwindcss from tailwindcss/viteexport default …...

单片机原理与运用

个人主页&#xff1a;java之路-CSDN博客(期待您的关注) 目录 一、走进单片机的世界 二、单片机是什么 &#xff08;一&#xff09;定义与本质 &#xff08;二&#xff09;与普通计算机的区别 三、单片机的工作原理深度剖析 &#xff08;一&#xff09;硬件组成及功能 &am…...

MYSQL-数据恢复与备份

个人主页&#xff1a;java之路-CSDN博客(期待您的关注) 目录 数据的重要性与备份恢复的意义 MySQL 备份大揭秘 备份类型大盘点 备份工具展示台 备份实操全流程 MySQL 恢复大作战 恢复原理深剖析 恢复方法大集合 实战案例大放送 备份与恢复的最佳实践 备份策略制定法 …...

【Java】实现后端请求接口

【Java】实现后端请求接口 【一】使用 HttpURLConnection 实现四种请求方式的示例【1】Get请求【2】POST请求【3】PUT请求【4】DELETE 请求【5】汇总工具类&#xff0c;通过传参实现4种请求 【二】HttpClient 实现四种请求方式的示例【1】GET请求【2】POST 请求【3】PUT 请求【…...

人工智能之深度学习的革命性突破

深度学习的革命性突破 深度学习是机器学习的一个子领域&#xff0c;通过模拟人脑神经网络的结构和功能&#xff0c;实现对复杂数据的高效处理。近年来&#xff0c;深度学习在计算机视觉、自然语言处理、语音识别等领域取得了革命性突破。本文将深入探讨深度学习的核心架构、突…...

JavaScript document.write()介绍(直接将内容写入HTML文档的早期方法,已逐渐被现代DOM操作方法取代)

文章目录 **一、基本语法****二、核心功能**1. **在文档加载阶段写入**2. **文档加载后调用会导致覆盖****三、注意事项**1. **覆盖风险**2. **性能问题**3. **XSS 漏洞**4. **已关闭的文档流** **四、使用场景&#xff08;不推荐&#xff0c;但需了解&#xff09;****五、现代…...

mybatis-plus逆向code generator pgsql实践

mybatis-plus逆向code generator pgsql实践 环境准备重要工具的版本供参考pom依赖待逆向的SQL 配置文件CodeGenerator配置类配置类说明 环境准备 重要工具的版本 jdk1.8.0_131springboot 2.7.6mybatis-plus 3.5.7pgsql 14.15 供参考pom依赖 <?xml version"1.0&quo…...

【二叉树学习7】

力扣236.二叉树的最近公共祖先 链接: link 思路 要找p&#xff0c;q的公共祖先&#xff0c;可以从下往上遍历二叉树&#xff0c;而二叉树的后序遍历是天然的从下往上遍历。这题采用的是递归的方法&#xff0c;递归结束条件就是root为null或者rootp或者rootq就结束递归。 然后…...

LabVIEW显微镜成像偏差校准

在高精度显微镜成像中&#xff0c;用户常常需要通过点击图像的不同位置&#xff0c;让电机驱动探针移动到指定点进行观察。然而&#xff0c;在实际操作中&#xff0c;经常会遇到一个问题&#xff1a;当点击位于图像中心附近的点时&#xff0c;探针能够相对准确地定位&#xff1…...

什么是弧形光源

工业检测中的弧形光源是一种专门设计用于机器视觉和自动化检测的照明设备,通常用于提供均匀、高对比度的照明,以增强图像采集质量,便于检测系统识别和分析目标物体的特征。以下是关于工业检测弧形光源的详细介绍: 特点 1均匀照明: 弧形设计能够提供均匀的漫反射光,减少阴…...

Linux性能分析工具Trace使用

Linux Trace是⼀种⽤于抓取和分析系统运⾏时信息的⼯具。允许开发⼈员跟踪和分析系统的各种活动,以便深⼊了解系统的性能、⾏为和故障。下⾯是关于Linux Trace数据抓取的说明: 1. 数据抓取范围:Linux Trace可以抓取各种级别的数据,包括系统级别、进程级别和内核级别的数据。…...

【Apache Paimon】-- 作为一名小白,如何系统地学习 Apache paimon?

目录 一、整体规划 1. 了解基本概念与背景 2. 学习资料的选择 3. 学习路径与规划 4. 学习建议 5. 注意事项 6. 参考学习资料 二、详细计划 阶段 1&#xff1a;了解基础&#xff08;1-2 周&#xff09; 阶段 2&#xff1a;深入掌握核心功能&#xff08;3-4 周&#xf…...

Vue2组件通信

目录 【props】【$emit】【Event Bus】【provide和inject】【Vuex】 【props】 父组件通过props向子组件传递数据&#xff1b; <!-- 父组件 --> <template><ChildComponent :message"parentMessage" /> </template> <script> import…...

HarmonyOS:使用List实现分组列表(包含粘性标题)

一、支持分组列表 在列表中支持数据的分组展示&#xff0c;可以使列表显示结构清晰&#xff0c;查找方便&#xff0c;从而提高使用效率。分组列表在实际应用中十分常见&#xff0c;如下图所示联系人列表。 联系人分组列表 在List组件中使用ListItemGroup对项目进行分组&#…...

纪念日倒数日项目的实现-【纪念时刻-时光集】

纪念日/倒数日项目的实现## 一个练手的小项目&#xff0c;uniappnodemysql七牛云。 在如今快节奏的生活里&#xff0c;大家都忙忙碌碌&#xff0c;那些具有特殊意义的日子一不小心就容易被遗忘。今天&#xff0c;想给各位分享一个“纪念日”项目。 【纪念时刻-时光集】 一…...

Kafka知识点总结

一、概述 &#xffe5;1. 推拉模式 pull&#xff08;拉&#xff09;模式&#xff1a;consumer采用从broker中主动拉取数据&#xff0c;不足之处是如果没有数据&#xff0c;消费者可能会陷入循环中&#xff0c;一直返回空数据。push&#xff08;推&#xff09;模式&#xff1a…...

[AI]从零开始的llama.cpp部署与DeepSeek格式转换、量化、运行教程

一、前言 在上一次的DeepSeek的部署教程中&#xff0c;我们使用Ollama与LM Studio很轻松的部署了DeepSeek并且也完成了相关API的调用&#xff0c;如果还有不会的小伙伴请看下面的教程&#xff1a; DeepSeek本地部署&#xff1a;[AI]从零开始的DeepSeek本地部署及本地API调用教…...

#define宏与编译时定义的本质对决:从const常量到typedef的类型安全演进

目录 一、#define宏与const常量的本质差异&#xff1a;从文本替换到类型安全的编程抉择 1. 预处理阶段的文本替换&#xff08;#define&#xff09; 2. 编译时的类型安全&#xff08;const&#xff09; 3. 跨文件访问的限制 4. 代码示例对比 5. 最佳实践 总结表 二、类型…...

【天地图】绘制、删除点线面

使用天地图绘制、删除点线面 实现效果图地图组件完整代码使用地图组件完整代码 实现效果图 地图组件完整代码 // 天地图组件 <template><div class"map-container"><div id"mapCon"></div></div> </template><scri…...

2025年:边缘计算崛起下运维应对新架构挑战

一、引言 随着科技的飞速发展&#xff0c;2025年边缘计算正以前所未有的速度崛起&#xff0c;给运维行业带来了全新的架构挑战。在这个充满机遇与挑战的时代&#xff0c;美信时代公司的美信监控易运维管理软件成为运维领域应对这些挑战的有力武器。 二、边缘计算崛起带来的运维…...

【docker知识】快速找出服务器中占用内存较高的容器

本文由Markdown语法编辑器编辑完成。 1.背景&#xff1a; 近期在处理现场问题&#xff0c;观察服务器时&#xff0c;会遇到某些进程占用较高内存的情况。由于我们的服务&#xff0c;基本上都是以容器的方式在运行&#xff0c;因此就需要找到&#xff0c;到底是哪个容器&#…...

SQL联合查询

文章目录 MySQL系列&#xff1a;1.内连接2.外连接3.自连接4.子查询5.合并查询6.插入查询 MySQL系列&#xff1a; 初识MySQL&#xff0c;MySQL常用数据类型和表的操作&#xff0c;增删改查(CRUD)操作(总),数据库约束数据库设计 #班级表 drop table if exists class; create ta…...

cameralib 安装

目录 linux安装&#xff1a; 测试安装是否成功&#xff1a; linux安装&#xff1a; pip install githttps://github.com/isarandi/cameralib.git pip install githttps://github.com/isarandi/boxlib.git pip install githttps://github.com/isarandi/poseviz.git githttps…...

Windows软件自动化利器:pywinauto python

Pywinauto WindowsAPP UI自动化 Windows软件自动化利器&#xff1a;pywinauto python...

清华大学《DeepSeek:从入门到精通》

近日&#xff0c;清华大学新闻与传播学院新媒体研究中心元宇宙文化实验室发布了由余梦珑博士后及其团队撰写的《DeepSeek&#xff1a;从入门到精通》手册。这份长达104页的指南&#xff0c;旨在帮助用户全面掌握国产通用人工智能平台DeepSeek的核心功能与应用技巧。 DeepSeek简…...

网易易盾接入DeepSeek,数字内容安全“智”理能力全面升级

今年农历新年期间&#xff0c;全球AI领域再度掀起了一波革命性浪潮&#xff0c;国产通用大模型DeepSeek凭借其强大的多场景理解与内容生成能力迅速“出圈”&#xff0c;彻底改写全球人工智能产业的格局。 作为国内领先的数字内容风控服务商&#xff0c;网易易盾一直致力于探索…...