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

说一下分布式组件时钟一致性的解决方案

为什么需要时钟一致性?

在分布式系统中,时钟一致性是确保各节点时间同步的关键问题。

时钟不同步可能导致日志混乱、事务顺序错误、数据不一致等问题


1. 物理时钟同步

基础方案:NTP(网络时间协议)

原理:就像你手机自动和网络对时一样,NTP让计算机连接一个“时间服务器”(比如国家授时中心的服务器),校准自己的时间。时间服务器分等级(比如一级服务器直接连原子钟,二级连一级,以此类推)

适用场景:对时间精度要求不高的场景(如日志记录、一般业务系统)

精度:大约几毫秒(普通人感觉不到,但高速交易会觉得不够)

缺点:受网络延迟影响大,跨地域或网络抖动时误差显著,如果网络延迟高(比如跨国访问),误差会变大,比如你在中国连美国的NTP服务器,可能差几十毫秒


高精度方案:PTP(精确网络协议)

原理:在局域网内(比如一个机房),用专门的硬件(支持PTP的网卡)记录数据包发送和接收的精确时间,消除网络延迟的影响,实现“微秒级”同步(1微秒=千分之一毫秒)。

精度:1微秒以内

适用场景:金融交易、工业控制等需要高精度时间同步的场景。

缺点:需要买专用硬件(普通网卡不支持),只能在局域网用(跨城市就不行了)


跨地域方案:原子钟 + GPS/北斗

原理

原子钟:世界上最准的钟(几百万年误差1秒)。

GPS/北斗卫星:卫星自带原子钟,广播精确时间。

谷歌等公司用“原子钟 + GPS”组合,再通过算法算出时间的误差范围(比如当前时间在 [1:00:00.000, 1:00:00.002] 之间),系统会等待这个误差过去,保证所有节点时间一致

适用场景:跨数据中心的高一致性系统(如Google Spanner的TrueTime API)。

实现:通过冗余时间源(GPS、原子钟)生成时间区间([earliest, latest]),系统需容忍区间内的不确定性。

缺点:成本高,需专用硬件。


2. 逻辑时钟

当物理时钟无法完全同步时,通过逻辑关系维护事件顺序:

Lamport 逻辑时钟

原理

想象你和朋友用微信聊天,但网络有延迟,消息可能乱序。如何确定谁先说话?

规则

本地事件:每当你发送一条消息,给自己的时间戳**+1**(比如原先是3,发消息后变成4)

接收事件:当你收到别人的消息时,对比对方的时间戳,把自己的时间戳调到比对方大1
例如:

  • 你本地时间是3,收到对方时间戳是5的消息 → 把自己的时间调到5+1=6。
  • 这样就能保证:“如果A发消息给B,那么A的事件一定在B处理这条消息之前发生”

这个的逻辑是先A后B,但无法解决并发情况出现的问题


向量时钟(Vector Clock)

每个节点(服务器)有一个独立的“计数器”,所有节点的计数器合起来组成一个“计数器数组”(向量)。

通过对比数组,就能知道事件发生的先后关系。


例子

假设有3个朋友(A、B、C)在微信群里约定吃饭时间:

规则:每个人发消息时,只增加自己的计数器,并带上自己的计数器数组。

初始状态:A的计数器数组是 [A:0, B:0, C:0],B和C同理。

A说:明天12点吃饭! A的计数器数组变成 [A:1, B:0, C:0]。

B看到后回复:“同意!”B要先同步A的计数器,把自己的数组从 [0,0,0] 更新为 【1,0,0】然后再把自己的计数器+1也就是【1,1,0】

C同时(没看到A和B的消息)说:“改成13点!”C的数组是【0,0,1】。


结果对比

  • A的数组 [A:1, B:0, C:0]
  • B的数组 [A:1, B:1, C:0]
  • C的数组 [A:0, B:0, C:1]

A和B有先后顺序,成功

C和A和B都没有先后顺序,失败,需要人为合并


混合逻辑时钟(HLC)

什么是混合逻辑时钟

用「粗略的挂钟时间」+「自增的流水号」,既容忍时间误差,又能保证事件顺序不乱

  1. 物理时间:取本地时钟(比如用NTP同步,允许有误差,比如差几秒)。
  2. 逻辑计数器:当物理时间相同或需要修正时,用计数器进一步排序

时间_计数器排序

例如A的时间是是10点整,B的事件是9.59分

A执行完,B再执行,如果单纯从时间戳的角度来看的话是B比A先,但实际上是A比B先

A执行完后会有个逻辑时钟记录,10.0.0_1

B执行的时候,我们要拉最新的逻辑时钟,这样子就能保证不同时间戳差异导致的问题

B的9.59时间对比最新的记录10.0.0_1,B就知道自己的时间满了,就拿逻辑时钟的时间来使用,然后逻辑计数器加一,10.0.0_2

为什么比向量时钟好用?

  • 向量时钟:每个节点记录所有人的计数器(存储和传输成本高)。
  • HLC:只存1个物理时间 + 1个计数器(成本极低,适合大规模系统

3. 应用层容错设计

即使物理时钟存在偏差,通过设计降低影响:

  • 时钟偏差容忍:设置最大时钟偏移(如Spanner的max_clock_skew),超时请求拒绝或延迟处理。
  • 版本向量(Version Vectors):记录数据版本的时间戳,解决写入冲突(如Cassandra)。
  • 租约机制(Lease):通过逻辑租约避免依赖精确时间(如ZooKeeper的临时节点)。

4. 协调服务与共识算法

  • ZooKeeper/etcd:通过Paxos/Raft等共识算法保证全局一致性,内部依赖逻辑时间戳。
  • TSO(Timestamp Oracle):集中式授时服务(如TiDB),为事务分配单调递增时间戳。
  • Google Spanner:结合TrueTime和两阶段提交(2PC),实现跨数据中心事务的线性一致性。

场景示例:分布式数据库事务

  1. 物理同步:使用NTP/PTP同步各节点时钟。
  2. 逻辑时间戳:采用HLC为事务分配时间戳,确保跨节点顺序。
  3. 冲突解决:对并发写入使用向量时钟或Last-Write-Win(LWW)策略。
  4. 共识协议:通过Raft保证元数据操作的全局一致。

总结方案选择

场景需求

推荐方案

一般时间同步(毫秒级)

NTP

局域网高精度(微秒级)

PTP + 硬件支持

跨数据中心事务一致性

TrueTime类方案 + 原子钟/GPS

事件因果顺序

Lamport时钟或HLC

分布式数据库冲突解决

向量时钟/版本向量

低延迟容忍的强一致性

共识算法(Raft/Paxos) + TSO

通过结合物理同步、逻辑时钟和容错设计,可系统性解决分布式时钟一致性问题


面试回答引导

什么是时钟一致性?在不同的场景下我们需要保证架构软件的时间是一致的

在分布式系统中,时钟一致性是确保各节点时间同步的关键问题。时钟不同步可能导致日志混乱、事务顺序错误、数据不一致等问题

有三种解决时钟一致性的方案

物理时钟,逻辑时钟,共识算法

先介绍一下物理时钟

网络时间协议:连接一个网络服务器,以网络服务器的时间为标准,但网络服务器受网络波动影响大,延迟也大,例如中国连美国服务器,那么时间差就会达到几十ms

精确网络协议:在局域网内(比如一个机房),用专门的硬件(支持PTP的网卡)记录数据包发送和接收的精确时间,消除网络延迟的影响,实现“微秒级”同步,也就是自己有个机房,基于自己机房的时间为准

原子钟+GPS:卫星自带原子钟,广播精确时间

谷歌等公司用“原子钟 + GPS”组合,再通过算法算出时间的误差范围(比如当前时间在 [1:00:00.000, 1:00:00.002] 之间),系统会等待这个误差过去,保证所有节点时间一致

再介绍一下逻辑时钟:

Lamport逻辑时钟(普通逻辑时钟,普通计数器):类似于普通聊天,我们先A后B,我们A发消息,那么A的计数器从0变1,然后B发消息的时候要拉A的计数器,发现它大,那么我们更新为1然后向A发消息,B的计数器更新为2

向量时钟(计数器数组):

A的计数器数组是 [A:0, B:0, C:0],B和C同理。

A说:明天12点吃饭! A的计数器数组变成 [A:1, B:0, C:0]。

B看到后回复:“同意!”B要先同步A的计数器,把自己的数组从 [0,0,0] 更新为 【1,0,0】然后再把自己的计数器+1也就是【1,1,0】

C同时(没看到A和B的消息)说:“改成13点!”C的数组是【0,0,1】。

结果对比:

  • A的数组 [A:1, B:0, C:0]
  • B的数组 [A:1, B:1, C:0]
  • C的数组 [A:0, B:0, C:1]

A和B有先后顺序,成功

C和A和B都没有先后顺序,失败,需要人为合并

混合逻辑时钟(时钟_计数器):

时间_计数器排序

例如A的时间是是10点整,B的事件是9.59分

A执行完,B再执行,如果单纯从时间戳的角度来看的话是B比A先,但实际上是A比B先

A执行完后会有个逻辑时钟记录,10.0.0_1

B执行的时候,我们要拉最新的逻辑时钟,这样子就能保证不同时间戳差异导致的问题

B的9.59时间对比最新的记录10.0.0_1,B就知道自己的时间满了,就拿逻辑时钟的时间来使用,然后逻辑计数器加一,10.0.0_2

对比一下混合逻辑时钟和向量逻辑时钟

我们的向量逻辑时钟要给每个节点都存一个计数器存成一个计数器数组

而混合逻辑时钟只需要存一个只存1个物理时间 + 1个计数器

再说一下Raft协议是怎么保证我们的时钟一致性的

相关文章:

说一下分布式组件时钟一致性的解决方案

为什么需要时钟一致性? 在分布式系统中,时钟一致性是确保各节点时间同步的关键问题。 时钟不同步可能导致日志混乱、事务顺序错误、数据不一致等问题 1. 物理时钟同步 基础方案:NTP(网络时间协议) 原理&#xff1a…...

aws s3api 常用命令

AWS S3API 是 Amazon Web Services&#xff08;AWS&#xff09;提供的用于与简单存储服务&#xff08;S3&#xff09;进行交互的命令行工具&#xff0c;以下是一些常用命令&#xff1a; 桶操作 创建桶 aws s3api create-bucket --bucket <bucket-name> --region <r…...

006 ElementUI

https://element.eleme.cn/#/zh-CN ElementUI是组件库&#xff0c;网站快速成型工具 npm i element-ui2.12.0在 main.js 中写入以下内容&#xff1a; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; Vue.use(ElementUI);...

el-select组件与el-tree组件结合实现下拉选择树型结构框

下拉选择树型结构框 实现效果图组件完整代码 实现效果图 组件完整代码 <template><div class"tree-con"><el-selectv-model"value"placeholder"请选择"class"bs-select"ref"select"><el-optionv-for&…...

windows系统更新nvidia 驱动, 并安装pytorch

windows系统更新nvidia 驱动&#xff0c; 并安装pytorch 1.更新前nvidia-smi 显示版本比较久 2.方法一&#xff1a;通过NVIDIA GeForce Experience自动更新 NVIDIA GeForce Experience是NVIDIA官方提供的一款软件&#xff0c;它不仅可以帮助用户优化游戏设置&#xff0c;还能…...

如何深刻理解Reactor和Proactor

前言&#xff1a; 网络框架的设计离不开 I/O 线程模型&#xff0c;线程模型的优劣直接决定了系统的吞吐量、可扩展性、安全性等。目前主流的网络框架&#xff0c;在网络 IO 处理层面几乎都采用了I/O 多路复用方案(又以epoll为主)&#xff0c;这是服务端应对高并发的性能利器。 …...

如何使用WRF-Hydro GIS工具,生成运行WRF-Hydro模型的Domain文件,包括流域、地形、河网、湖泊等

WRF-Hydro模型作为一个集成了大气和水文过程的模型&#xff0c;具有一些挑战性的难点&#xff0c;包括&#xff1a; 复杂的耦合过程&#xff1a;WRF-Hydro模型需要同时考虑大气和水文过程的相互作用&#xff0c;包括降水、蒸发、径流等一系列过程的耦合&#xff0c;这使得模型的…...

adb devices报错 ADB server didn‘t ACK

ubuntu下连接手机首次使用adb devices 报错ADB server didn’t ACK adb devices * daemon not running; starting now at tcp:5037 ADB server didnt ACK Full server startup log: /tmp/adb.1000.log Server had pid: 52986 --- adb starting (pid 52986) --- 04-03 17:23:23…...

机器学习——决策树

1.什么要学习决策树&#xff1f; 处处都是选择,并且到处都是岔路口。比如你发现某只股票几天时间内涨了很多,如果是你,你会买进吗&#xff1f;如果买进了,你就得承担后果,要么会大赚一笔,要么会血本无归。总之&#xff0c;用算法替代主观判断&#xff0c;避免情绪化投资决策。 …...

zk源码—2.通信协议和客户端原理二

大纲 1.ZooKeeper如何进行序列化 2.深入分析Jute的底层实现原理 3.ZooKeeper的网络通信协议详解 4.客户端的核心组件和初始化过程 5.客户端核心组件HostProvider 6.客户端核心组件ClientCnxn 7.客户端工作原理之会话创建过程 6.客户端核心组件ClientCnxn (1)客户端核心…...

Python设计模式:构建模式

1. 什么是构建模式 构建模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它允许使用多个简单的对象一步步构建一个复杂的对象。构建模式通过将构建过程与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。换句话说&#xff0c;构建模…...

C++类间的 “接力棒“ 传递:继承(下)

文章目录 5. 继承与友元6.继承与静态成员7.菱形继承8.继承和组合希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xff01; 本篇接着补充继承方面的内容&#xff0c;同时本篇的菱形继承尤为重要 5. 继承与友元 class Student; class Person { public:fri…...

C++11QT复习 (十六)

文章目录 Day11 移动语义回顾一、移动语义基础概念二、自定义 String 类的移动语义实现输出运算符重载&#xff1a; 三、测试函数&#xff1a;验证移动与拷贝行为四、左值与右值的补充说明右值引用作为函数返回值 五、知识总结如何区分左值与右值&#xff1f; 六、附加说明&…...

Redis客户端命令到服务器底层对象机制的完整流程?什么是Redis对象机制?为什么要有Redis对象机制?

Redis客户端命令到服务器底层对象机制的完整流程 客户端 → RESP协议封装 → TCP传输 → 服务器事件循环 → 协议解析 → 命令表查找 → 对象机制 → 动态编码 → 数据结构操作 → 响应编码 → 网络回传 Redis客户端命令到服务器底层对象机制的完整流程可分为协议封装、命令解…...

鸿蒙NEXT开发节流、防抖工具类(ArkTs)

import { CacheUtil } from ./CacheUtil; import { DateUtil } from ./DateUtil;/*** 节流、防抖工具类&#xff08;用于点击事件&#xff0c;防止按钮被重复点击&#xff09;** author 鸿蒙布道师* since 2025/04/07*/ export class ClickUtil {private static throttleTimeou…...

Qt程序 Windows打包

目的 运行Qt的程序&#xff0c;遇上如下问题&#xff1a; 显然是少很多Qt库&#xff0c;那就把Qt库放到这里&#xff0c;Qt提供这一个命令windeployqt.exe. windeployqt windeployqt是Qt框架提供的一个工具&#xff0c;主要用于自动打包Windows平台上的Qt应用程序及其依赖项…...

2025-04-07(DS复习):Databricks DLT 详解

Databricks Delta Live Tables (DLT) 详解 Delta Live Tables (DLT) 是 Databricks 提供的一个智能框架&#xff0c;用于构建可靠、可扩展的数据处理管道。它简化了ETL(提取、转换、加载)和ELT(提取、加载、转换)流程的开发和管理&#xff0c;特别适合在数据湖house架构中实现…...

音视频入门基础:RTCP专题(3)——RTCP协议简介(中)

本文接着《音视频入门基础&#xff1a;RTCP专题&#xff08;2&#xff09;——RTCP协议简介&#xff08;上&#xff09;》&#xff0c;继续对RTCP协议进行简介。本文的一级标题从“九”开始。 九、Sender and Receiver Reports 本段内容对应《RFC 3550》的第6.4节。根据《RFC …...

嵌入式工程师多线程编程(二)生产者-消费者模式

生产者-消费者模式详解&#xff1a;多线程编程的核心范式 生产者-消费者模式(Producer-Consumer Pattern)是多线程编程中最经典的设计模式之一&#xff0c;它通过解耦生产者和消费者的工作流程&#xff0c;实现了线程间的高效协作与资源管理。本文将深入剖析这一模式的原理、实…...

秒杀系统的性能优化

秒杀任务总体QPS预期是每秒几十万&#xff0c;对tomcat、redis、JVM参数进行优化。 tomcat线程数 4核8G的机器&#xff0c;一般就是开200-300个工作线程&#xff0c;这是个经验值。每秒一个线程处理3-5个请求&#xff0c;200多个线程的QPS可以达到1000左右。线程不能太多&…...

MySQL学习笔记集--索引

索引 索引是数据库中用于提高查询效率的一种数据结构。 它类似于书籍的目录&#xff0c;通过索引可以快速定位到表中的特定行&#xff0c;而无需扫描整个表。 索引的类型 主键索引&#xff08;Primary Key Index&#xff09; 自动创建&#xff0c;用于唯一标识表中的每一行。…...

深入理解重排(Reflow)与重绘(Repaint),写出高性能 CSS 动画

在前端开发中&#xff0c;CSS 动画是提升用户体验的重要手段&#xff0c;但很多开发者在使用动画时并不了解浏览器背后的渲染机制&#xff0c;导致动画卡顿甚至影响整体性能。本文将带你深入理解 CSS 中的两大核心概念 —— 重排&#xff08;Reflow&#xff09; 与 重绘&#x…...

Elasticsearch 从入门到实战:文档聚合操作及总结

四、文档操作&#xff1a;数据的增删改查 4.1 添加文档 文档&#xff08;Document&#xff09;是索引中的最小数据单元&#xff0c;使用 POST 或 PUT 添加&#xff1a; json POST /products/_doc/1 { "name": "华为Mate50 Pro", "price": 6…...

前缀和和差分笔记

前缀和和差分笔记 一维前缀和 示意图如下&#xff1a; 代码&#xff1a; **核心公式&#xff1a;sum[i]sum[i-1]a[i];&#xff08;计算前缀和的&#xff09;**#include<bits/stdc.h> using namespace std; const int N10000; #define ll long long int a[N],sum[N]; i…...

SSRF漏洞利用的小点总结和实战演练

含义理解&#xff1a; SSRF&#xff08;Server-Side Request Forgery&#xff0c;服务器请求伪造&#xff09;是一种由攻击者构造请求&#xff0c;由服务端发起请求的安全漏洞&#xff0c;一般情况下&#xff0c;SSRF攻击的目标是外网无法访问的内网系统。 攻击者通过篡改URL…...

IAR推动嵌入式开发:云就绪、可扩展的CI/CD和可持续自动化

全球领先的嵌入式系统开发软件解决方案供应商IAR正式发布全新云就绪平台&#xff0c;为嵌入式开发团队提供企业级的可扩展性、安全性和自动化能力。该平台于在德国纽伦堡举办的embedded world 2025展会上正式亮相&#xff0c;标志着将现代DevSecOps工作流集成到嵌入式软件开发中…...

瓦片数据合并方法

影像数据 假如有两份影像数据 1.全球底层影像0-5级别如下&#xff1a; 2.局部高清影像数据级别9-14如下&#xff1a; 合并方法 将9-14文件夹复制到全球底层0-5的目录下 如下&#xff1a; 然后合并xml文件 使得Tileset设置到最高级&#xff08;包含所有级别&#xff09;&…...

RISC-V AIA学习---IPI 处理器间中断

对于有多个hart的机器&#xff0c;必须为每个 hart 提供一个由具体实现定义的内存地址。向这个地址写入数据&#xff0c;就能向该 hart 发送一个机器级软件中断&#xff08;主代码为 3&#xff09;。换句话说&#xff0c;机器级的 IPI 可以通过这种方式&#xff0c;以机器级软件…...

Automattic 裁员16%,Matt Mullenweg称此举旨在提升盈利能力并增强投资实力

2025年4月3日&#xff0c;Automattic——这家以 WordPress.com、Tumblr 和 WooCommerce 等产品闻名的公司&#xff0c;宣布裁减其全球员工队伍的16%。这一决定是在周三通过公司博客文章和 Slack 内部消息向员工透露的。根据裁员前 Automattic 官网显示的员工人数&#xff08;1,…...

图解AUTOSAR_SWS_FlexRayInterface

AUTOSAR FlexRay Interface 模块分析 本文档基于AUTOSAR SWS FlexRayInterface规范,对FlexRay Interface模块进行详细分析。 1. FlexRay Interface 模块架构 1.1 模块架构概览 1.2 架构说明 FlexRay Interface模块是AUTOSAR中的ECU抽象层组件,为上层模块提供统一的抽象接…...

AI赋能ArcGIS Pro——水系网络AI智能提取 | GIS人工智能制图技术解析

我们之前做了做了几期的AIGIS的分享。我们今天要再次做一个分享。 AI赋能ArcGIS Pro——水系网络智能提取全解析 DeepSeek结合ArcGIS Pro制作一个批量建库的脚本工具&#xff08;代码一字未改&#xff0c;直接运行&#xff09; 看老外如何玩DeepSeek&#xff01;15分钟快速创…...

STM32江科大----IIC

声明&#xff1a;本人跟随b站江科大学习&#xff0c;本文章是观看完视频后的一些个人总结和经验分享&#xff0c;也同时为了方便日后的复习&#xff0c;如果有错误请各位大佬指出&#xff0c;如果对你有帮助可以点个赞小小鼓励一下&#xff0c;本文章建议配合原视频使用❤️ 如…...

RAG(检索增强生成)系统,提示词(Prompt)表现测试(数据说话)

在RAG(检索增强生成)系统中,评价提示词(Prompt)设计是否优秀,必须通过量化测试数据来验证,而非主观判断。以下是系统化的评估方法、测试指标和具体实现方案: 一、提示词优秀的核心标准 优秀的提示词应显著提升以下指标: 维度量化指标测试方法事实一致性Faithfulness …...

【leetcode hot 100 763】划分字母区间

解法一&#xff1a;用map记录<字母&#xff0c;字母出现的次数>&#xff0c;循环取出value-1&#xff0c;每次判断已经取出的字母&#xff08;Set记录&#xff09;是否还在后面存在&#xff08;value>1&#xff09;&#xff0c;若存在继续循环&#xff0c;若不存在开启…...

PCB工艺:现代电子产品的核心制造技术

引言 PCB&#xff08;Printed Circuit Board&#xff0c;印刷电路板&#xff09;是电子设备的核心组成部分&#xff0c;几乎所有现代电子产品&#xff0c;从智能手机到航天设备&#xff0c;都依赖于PCB实现电路连接。PCB制造工艺的进步直接影响电子产品的性能、可靠性和成本。…...

【UE5 C++课程系列笔记】34——结构体与Json的相互转化

目录 准备工作 一、结构体转Json 二、Json转结构体 三、复杂结构体与Json的转换 主要通过借助FJsonObjectConverter类实现结构体和 JSON 之间的相互转换。 准备工作 首先新建一个结构体如下 添加两个方法分别用于将Struct转为Json、Json转为Struct 一、结构体转Json FStri…...

2025最新系统 Git 教程(二)

第2章 Git基础 2.1 Git 基础 - 获取 Git 仓库 如果你只想通过阅读一章来学习 Git&#xff0c;那么本章将是你的不二选择。 本章涵盖了你在使用 Git 完成各种工作时将会用到的各种基本命令。 在学习完本章之后&#xff0c;你应该能够配置并初始化一个仓库&#xff08;reposito…...

力扣hot100_动态规划

动态规划 hot100_198. 打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。…...

玄机-第六章-哥斯拉4.0流量分析的测试报告

目录 一、测试环境 二、测试目的 三、操作过程 Flag1 Flag2 Flag3 Flag4 Flag5 Flag6 Flag7 Flag8 Flag9 Flag10 Flag11 Flag12 Flag13 pam_unix.so关键代码 四、结论 一、测试环境 靶场介绍&#xff1a;国内厂商设置的玄机靶场&#xff0c;以应急响应题目著…...

【Hadoop入门】Hadoop生态圈概述:核心组件与应用场景概述

1 Hadoop生态圈概述 Hadoop生态圈是以 HDFS&#xff08;分布式存储&#xff09; 和 YARN&#xff08;资源调度&#xff09; 为核心&#xff0c;围绕大数据存储、计算、管理、分析等需求发展出的一系列开源工具集合。 核心特点&#xff1a; 模块化&#xff1a;各组件专注解决特定…...

深度学习实战电力设备缺陷检测

本文采用YOLOv11作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv11以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对电力设备缺陷数据集进行训练和优化&#xff0c;该数据集包含丰富的电力设备缺…...

随机产生4位随机码(java)

Random类&#xff1a; 用于生成随机数 import java.util.Random; 导入必要的类 generateVerificationCode()方法&#xff1a; 这是一个静态方法&#xff0c;可以直接通过类名调用 返回一个6位数字的字符串&#xff0c;首位不为0 生成首位数字&#xff1a; random.nextInt…...

音视频入门基础:RTCP专题(4)——RTCP协议简介(下)

本文接着《音视频入门基础&#xff1a;RTCP专题&#xff08;3&#xff09;——RTCP协议简介&#xff08;中&#xff09;》&#xff0c;继续对RTCP协议进行简介。本文的一级标题从“十四”开始。 十四、SDES: Source Description RTCP Packet 本段内容对应《RFC 3550》的第6.5节…...

PyCharm2024.3.5专业版解决Conda executable is not found问题

项目场景&#xff1a; pycharm使用anaconda 内的虚拟环境 pycharm 2024.3.5 专业版 C:\Users\Administrator>conda infoactive environment : transmute_recipe_generatoractive env location : D:\anaconda3\envs\transmute_recipe_generatorshell level : 1user config…...

滑动窗口思想 面试算法高频题

基本思想 滑动窗口思想其实就是快慢型的特例 计算机网络中滑动窗口协议&#xff08;Sliding Window Protocol&#xff09;&#xff0c;该协议是TCP实现流量控制等的核心策略之一。事实上在与流量控制、熔断、限流、超时等场景下都会首先从滑动窗口的角度来思考问题&#xff0…...

Linux中特殊的变量

1.$# 含义&#xff1a;表示传入脚本或函数的参数数量。 用法&#xff1a;用于检查用户是否提供了足够的参数。 示例&#xff1a; #!/bin/bash echo "参数数量: $#"2.$? 含义&#xff1a;表示上一条命令的退出状态。如果命令成功执行&#xff0c;值为 0&#xff1b;…...

Linux文件系统与日志分析

目录 一.日志 1.1日志的定义 1.2日志的功能 1.3日志的分类 1.4日志的文件格式 1.5用户日志 1.6一些常见的日志 1.7日志消息的级别 二.系统日志管理 rsyslog 2.1rsyslog的定义 2.2rsyslog 配置文件 2.3rsyslog的实际应用----单独显示某一服务的日志 1.编辑rsyslog配…...

从传统物流到智能调度的全链路升级

一、TMS系统升级的核心目标与整体框架 &#xff08;一&#xff09;为什么要升级&#xff1f;传统物流管理的三大痛点 调度效率低下&#xff1a;过去依赖人工分单、手动匹配承运商&#xff0c;订单量大时容易出错&#xff0c;比如不同区域的订单混排导致运输路线绕路&#xff…...

UE5中如何修复后处理动画蓝图带来的自然状态下的metablriger身体绑定形变(如耸肩)问题

【[metablriger] UE5中如何修复后处理动画蓝图带来的自然状态下的metablriger身体绑定形变(如耸肩)问题】 UE5中如何修复后处理动画蓝图带来的自然状态下的metablriger身体绑定形变(如耸肩)问题...

STL_vector_01_基本用法

&#x1f44b; Hi, I’m liubo&#x1f440; I’m interested in harmony&#x1f331; I’m currently learning harmony&#x1f49e;️ I’m looking to collaborate on …&#x1f4eb; How to reach me …&#x1f4c7; sssssdsdsdsdsdsdasd&#x1f383; dsdsdsdsdsddfsg…...