Linux中的时间同步
一、时间同步服务扩展总结
1. 时间同步的重要性
-
多主机协作需求:在分布式系统、集群、微服务架构中,时间一致性是日志排序、事务顺序、数据一致性的基础。
-
安全协议依赖:TLS/SSL证书、Kerberos认证等依赖时间有效性,时间偏差可能导致身份验证失败或中间人攻击漏洞。
-
故障排查:日志时间戳若不同步,跨节点问题定位将极其困难。
-
高精度场景:金融交易(毫秒级误差可能引发损失)、科学实验、5G网络同步(微秒级要求)等场景对时间精度要求极高。
2. NTP 协议核心机制
-
层级结构(Stratum):
-
Stratum 0:高精度物理设备(如原子钟、GPS卫星时钟),直接提供时间源。
-
Stratum 1:与Stratum 0设备直连的NTP服务器,作为主时间服务器。
-
Stratum 2:从Stratum 1同步的服务器,依次类推(最多15层)。
-
-
时钟漂移修正:通过算法(如Marzullo算法)计算网络延迟和时钟偏差,逐步调整系统时间,避免时间跳变。
-
闰秒处理:NTP协议支持在协调世界时(UTC)插入闰秒时平滑调整系统时间。
3. chrony 核心原理
-
设计目标
-
动态网络适应:自动调整轮询间隔(
minpoll
/maxpoll
),适应网络延迟和波动。 -
快速收敛:在初始同步或网络恢复时,通过
iburst
参数快速完成时间校准。 -
最小化时钟偏差:利用硬件时间戳(
hwtimestamp
)和实时时钟(RTC)补偿,减少累积误差。 -
离线模式支持:无网络时依赖本地时钟维持时间稳定性。
-
-
核心组件
-
chronyd 守护进程:后台服务,负责与时间源通信并调整系统时钟。
-
chronyc 命令行工具:用于监控和动态修改配置。
-
配置文件
/etc/chrony.conf
:定义时间源、策略、日志等参数。
-
4. NTP 服务(ntpd)
-
特点:
-
长连接模式:持续与时间服务器通信,适合长期稳定运行的环境。
-
资源占用低:适合嵌入式设备或低配置服务器。
-
成熟稳定:经过多年验证,兼容性广泛(旧系统、网络设备)。
-
-
局限性:
-
网络波动敏感:间歇性网络中断时同步效率下降。
-
启动速度慢:初次同步可能需要较长时间。
-
温度敏感性:物理服务器时钟易受环境温度影响,需频繁修正。
-
5. Chrony 服务
-
核心优势:
-
动态适应网络:在断线、高延迟网络中快速收敛,适合移动设备、虚拟机、云环境。
-
更小时间偏差:通过更精细的时钟频率调整算法(如RTC补偿),减少长期运行后的累积误差。
-
安全性增强:支持NTP的Autokey协议,防止中间人攻击。
-
-
关键特性:
-
硬件时间戳:利用网卡硬件记录数据包收发时间,消除操作系统调度延迟,显著提升精度(可达亚微秒级)。
-
隔离模式:无网络时,依赖本地时钟维持时间一致性,避免服务中断。
-
轻量级设计:服务进程资源占用更低,适合容器化环境。
-
二、时间同步服务器的使用
1.使用 timedatectl 命令进行系统时间与时区管理
timedatectl 基础命令与功能
命令 | 功能说明 |
---|---|
timedatectl | 查看当前时间、时区、NTP 同步状态等完整信息。 |
timedatectl set-time "YYYY-MM-DD HH:MM:SS" | 手动设置系统时间(需 root 权限)。 |
timedatectl list-timezones | 列出系统支持的所有时区名称(按 PageUp /PageDown 翻页)。 |
timedatectl set-timezone "时区名" | 设置系统时区(如 Asia/Shanghai )。 |
timedatectl set-local-rtc 0 | 将硬件时钟(RTC)视为 UTC 时间(推荐)。 |
timedatectl set-local-rtc 1 | 将硬件时钟(RTC)视为 本地时间(Windows 双系统场景可能需要)。 |
timedatectl set-ntp yes/no(true/false) | 启用/禁用 NTP 网络时间同步(启用后自动同步时间,覆盖手动设置)。 |
2.从公共 NTP 服务器中同步时间到本地机器
常用公共 NTP 服务器分类汇总表
服务商/项目 | NTP 服务器地址 | .地区/用途 | 备注 |
---|---|---|---|
NTP Pool Project | [0-3].asia.pool.ntp.org | 亚洲地区(动态分配最近节点) | 全球分布式集群,自动选择最优节点。支持多区域(如 europe.pool.ntp.org )。 |
pool.ntp.org | 全球(默认分配最近节点) | 主入口,推荐普通用户使用。 | |
阿里云 | ntp.aliyun.com | 中国大陆 | 阿里云公共 NTP,低延迟,国内推荐。 |
ntp1-7.aliyun.com | 中国大陆(多节点负载均衡) | 冗余设计,提升可靠性(如 ntp1.aliyun.com 至 ntp7.aliyun.com )。 | |
time.pool.aliyun.com | Windows 系统专用 | Windows 时间服务默认支持。 | |
国家授时中心 | ntp.ntsc.ac.cn | 中国大陆 | 中国科学院国家授时中心官方服务器,高精度、高可靠性。 |
腾讯云 | ntp.tencent.com | 中国大陆 | 腾讯云公共 NTP,适用于国内云服务器。 |
time.google.com | 全球 | 谷歌公共 NTP,支持 IPv4/IPv6,需网络可访问谷歌。 | |
Microsoft | time.windows.com | 全球 | Windows 默认时间服务器,兼容性强。 |
Apple | time.apple.com | 全球 | macOS 和 iOS 设备默认时间服务器。 |
Amazon | [0-3].amazon.pool.ntp.org | 全球(AWS 区域优化) | 亚马逊云 NTP 服务,适合 AWS 用户。 |
Cloudflare | time.cloudflare.com | 全球 | Cloudflare 提供的公共 NTP,低延迟。 |
CNNIC | cn.ntp.org.cn | 中国大陆 | 中国互联网络信息中心(CNNIC)维护的 NTP 服务器。 |
下图我们将NTP服务器的地址源改写成国家授时中心的NTP服务器地址。
然后使用 systemctl restart chronyd.service 重启chrony服务,使新的配置生效。
在RHEL9中,chrony
是 RHEL 9 中默认的 NTP 客户端,chronyc
是 chrony
的控制工具,可用于查看详细的时间同步信息。
-
查看 NTP 源状态:chronyc sources -v
-
查看时间同步统计信息:chronyc tracking
chronyc sources -v
输出字段详解
字段 | 说明 | 示例/可能值 |
---|---|---|
MS | 状态标记:表示源的状态,符号组合如下: - ^* :当前同步的源。- ^+ :候选源(备选)。- ^- :可接受的源。- ^? :未同步或不可信源。- ^x :被排除的源(误差过大)。 | ^* , ^+ , ^- , ^? , ^x |
Stratum | 层级:时间源的层级,范围 1-15,1 表示最高精度(如原子钟),层级逐级递增。 | 1 , 2 , 3 |
Poll | 轮询间隔:与源同步的时间间隔(秒),以 2 的幂表示(如 6 表示 2⁶=64 秒)。 | 6 (64秒), 10 (1024秒) |
Reach | 可达性:最近 8 次轮询的成功率,8 进制表示(377 表示 8 次全部成功)。 | 377 (全成功), 25 (部分成功) |
LastRx | 最后接收时间:距离最后一次接收到源响应的时间(格式:秒/分钟/小时/天)。 | 45s , 3h , 7d |
Last sample | 最后样本偏差:最后一次时间同步的偏差,包含: - 时间偏移( ±数值 ):本地与源的时间差。- 延迟( delay ):网络延迟。- 离散度( disp ):误差范围。 | +0.123ms ± 0.456ms , delay 12.3ms |
Source | 时间源地址:NTP 服务器的 IP 或域名。 | ntp.aliyun.com , 192.168.1.1 |
State | 源状态:详细状态描述,如同步状态、网络状态等。 | SYNC , INIT , WAIT |
Flags | 标志位:表示源的特性,如: - N :NTP 协议源。- P :PPS 信号源。- S :选择状态。- A :认证通过。 | N , NP , S , A |
Condition | 状态条件:源的健康状态,如: - OK :正常。- FALSETICK :检测到异常。- JITTER :抖动过大。 | OK , FALSETICK , JITTER |
3.时间同步服务器的搭建
时间同步测试服务器IP地址:192.168.52.200/24
时间同步测试主机IP地址:192.168.52.20/24
以下配置都在Chrony 的配置文件 /etc/chrony.conf
中进行。
netstat -antlupe各列参数含义
列 | 说明 |
---|---|
Proto | 协议类型(udp 、udp6 分别表示 IPv4 UDP 和 IPv6 UDP)。 |
Recv-Q | 接收队列大小(当前待处理的数据包数量,0 表示无积压)。 |
Send-Q | 发送队列大小(当前待发送的数据包数量,0 表示无积压)。 |
Local Address:Port | 本地监听的地址和端口: - 0.0.0.0:123 :监听所有 IPv4 接口的 NTP 服务端口(123)。- 127.0.0.1:323 :IPv4 本地回环地址的 chronyd 控制端口(323)。- ::1:323 :IPv6 本地回环地址的 chronyd 控制端口(323)。 |
Foreign Address:Port | 远端连接的地址和端口: - 0.0.0.0:* 或 :::* :表示未建立连接(监听状态)。 |
State | 连接状态(UDP 无状态,因此显示 * )。 |
UID | 进程所有者的用户 ID(0 表示 root 用户)。 |
PID/Program | 进程 ID 和程序名称: - 98619/chronyd :chronyd 守护进程的 PID。 |
其他扩展信息 | netstat -e 显示的额外信息(如网络统计,此处未显式展示)。 |
然后就发现测试主机可以同步到服务器端的时间了。
相关文章:
Linux中的时间同步
一、时间同步服务扩展总结 1. 时间同步的重要性 多主机协作需求:在分布式系统、集群、微服务架构中,时间一致性是日志排序、事务顺序、数据一致性的基础。 安全协议依赖:TLS/SSL证书、Kerberos认证等依赖时间有效性,时间偏差可能…...
数据赋能(209)——质量管理——时效性原则
概述 数据时效性原则在数据收集、处理、分析和应用的过程中确保数据在特定时间范围内保持其有效性和相关性,为决策提供准确、及时的依据。在快速变化的市场环境中,数据时效性对于企业的竞争力和决策效率具有决定性的影响。 原则定义 数据时效性原则&a…...
AnimateCC教学:照片旋转飞舞并爆炸....
1.核心代码: <!DOCTYPE html> <html><head><meta charset="UTF-8" /><title>旋转照片演示</title><script src="https://code.createjs.com/1.0.0/createjs.min.js"></script><script src="http…...
腾讯混元-DiT 文生图
1 混元-DiT所需的模型大小一共是41G https://huggingface.co/Tencent-Hunyuan/HunyuanDiT https://colab.research.google.com/ HunyuanDiT_jupyter.ipynb %cd /content !GIT_LFS_SKIP_SMUDGE1 git clone -b dev https://github.com/camenduru/HunyuanDiT %cd /content/Hun…...
优化高搜索量还是低竞争关键词?SEO策略解析
在2025年的SEO环境中,关键词研究仍然是优化网站排名的基石。然而,一个常见的问题困扰着SEO从业者:在使用谷歌关键词规划师(Google Keyword Planner)进行关键词研究时,是否应该优先选择月搜索量较高的关键词…...
对比表格:数字签名方案、密钥交换协议、密码学协议、后量子密码学——密码学基础
文章目录 一、数字签名方案1.1 ECDSA:基于椭圆曲线的数字签名算法1.2 EdDSA:Edwards曲线数字签名算法1.3 RSA-PSS:带有概率签名方案的RSA1.4 数字签名方案对比 二、密钥交换协议2.1 Diffie-Hellman密钥交换2.2 ECDH:椭圆曲线Diffi…...
在MySQL中建索引时需要注意哪些事项?
在 MySQL 中建立索引是优化查询性能的重要手段,但不当的索引设计可能导致资源浪费、性能下降甚至拖慢写入速度。 所以我们我们首先要判断对于一个字段或者一些字段要不要建立索引。 适合建立索引的字段通常是: 主键字段:MySQL 会自动为主键…...
dstack 是 Kubernetes 和 Slurm 的开源替代方案,旨在简化 ML 团队跨顶级云、本地集群和加速器的 GPU 分配和 AI 工作负载编排
一、软件介绍 文末提供程序和源码下载 dstack 是 Kubernetes 和 Slurm 的开源替代方案,旨在简化顶级云和本地集群中 ML 团队的 GPU 分配和 AI 工作负载编排。 二、Accelerators 加速器 dstack 支持 NVIDIA 开箱即用的 、 AMD 、 Google TPU 和 Intel Gaudi 加速器…...
Linux 的 epoll 与 Windows 的 IOCP 详解
如果你在搞网络编程或者高性能服务器,一定要搞懂这两个模型——它们都是用来解决“多路复用”问题的工具,让你同时处理大量的网络连接变得高效又可控。 一、什么是“多路复用”? 简单说,就是你手里有很多任务(比如很多客户端的请求),但系统的核心(线程或者进程)资源…...
C# 方法(控制流和方法调用)
本章内容: 方法的结构 方法体内部的代码执行 局部变量 局部常量 控制流 方法调用 返回值 返回语句和void方法 局部函数 参数 值参数 引用参数 引用类型作为值参数和引用参数 输出参数 参数数组 参数类型总结 方法重载 命名参数 可选参数 栈帧 递归 控制流 方法包含了组成程序的…...
Webug4.0靶场通关笔记11- 第15关任意文件下载与第16关MySQL配置文件下载
目录 一、文件下载 二、第15关 任意文件下载 1.打开靶场 2.源码分析 3.渗透实战 三、第16关 MySQL配置文件下载 1.打开靶场 2.源码分析 3.渗透实战 (1)Windows系统 (2)Linux系统 四、渗透防御 一、文件下载 本文通过…...
More Effective C++学习笔记
条款1 指针与引用的区别 条款2 尽量使用C风格的类型转换 条款3 不要对数组使用多态 条款4 避免无用的缺省构造函数 条款5 谨慎定义类型转换函数 条款6 自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别 条款7 不要重载“&&”,“||”, 或“,” 条款8 理…...
如何设计抗Crosstalk能力强的PCB镀穿孔
一个高速PCB通道通常包含芯片SerDes IP、走线、穿层Via、连接器和Cable。 其中内层走线对于Crosstalk影响甚微(请参考什么? Stripline的FEXT为0! Why? ),而Via与连接器由于其参考路径较差的关系,…...
多线程系列三:这就是线程的状态?
1.认识线程的状态 NEW:Thread对象已经创建好了,但还没有调用start方法在系统中创建线程 RUNNABLE:就绪状态,表示这个线程正在CPU上执行,或准备就绪,随时可以去CPU上执行 BLOCKED:表示由于锁竞争…...
生成对抗网络(GAN, Generative Adversarial Network)
定义:一种通过对抗训练让两个神经网络(生成器与判别器)相互博弈的深度学习模型,用于生成逼真的数据(如图像、音频、文本等)。 一、核心思想:对抗博弈 GAN的核心是让两个神…...
用可视化学习逆置法
1.逆置法思路 目标:将这个彩色数组向右旋转3步 🔴1 → 🟠2 → 🟡3 → 🟢4 → 🔵5 → 🟣6 → ⚪7我们希望得到 🔵5 → 🟣6 → ⚪7 → 🔴1 → 🟠…...
家用服务器 Ubuntu 服务器配置与 Cloudflare Tunnel 部署指南
Ubuntu 服务器配置与 Cloudflare Tunnel 部署指南 本文档总结了我们讨论的所有内容,包括 Ubuntu 服务器配置、硬盘扩容、静态 IP 设置以及 Cloudflare Tunnel 的部署步骤。 目录 硬盘分区与扩容设置静态 IPCloudflare Tunnel 部署SSH 通过 Cloudflare Tunnel常见…...
【C++篇】类和对象(上)
目录 类的定义格式: 内敛函数: 类与struct的区别: 类的访问权限: 类域: 类的实例化: 对象大小: 计算对象的大小时,也存在内存对齐(与结构体一样)&…...
ES6/ES11知识点 续一
模板字符串 在 ECMAScript(ES)中,模板字符串(Template Literals)是一种非常强大的字符串表示方式,它为我们提供了比传统字符串更灵活的功能,尤其是在处理动态内容时。模板字符串通过反引号&…...
ES6入门---第二单元 模块二:关于数组新增
一、扩展运算符。。。 1、可以把ul li转变为数组 <script>window.onloadfunction (){let aLi document.querySelectorAll(ul li);let arrLi [...aLi];arrLi.pop();arrLi.push(asfasdf);console.log(arrLi);};</script> </head> <body><ul><…...
使用python加edge-tts实现文字转语音
文章目录 使用python加edge-tts实现文字转语音1. 使用 Python 安装 Edge-TTS2. 进一步优化3. 使用说明3.1 查看语音列表3.2 单语音转换3.3 批量生成所有语音3.4 改进亮点4. 使用教程最终代码文章创作不易使用python加edge-tts实现文字转语音 Edge-TTS(edge-tts Python 模块)本…...
如何用CSS实现HTML元素的旋转效果:从基础到高阶应用
在网页设计中,元素的动态效果能显著提升用户体验,而旋转效果是其中最常用的交互方式之一。CSS的transform属性提供了强大的旋转功能,结合动画(animation)和过渡(transition),开发者可…...
轻量级RTSP服务模块:跨平台低延迟嵌入即用的流媒体引擎
在音视频流媒体系统中,RTSP(Real-Time Streaming Protocol)服务模块通常扮演着“视频分发中心”的角色,它将编码后的音视频内容转为标准的流媒体格式,供客户端(播放器、云端平台、AI模块等)拉流…...
AVInputFormat 再分析
AVInputFormat 是 FFmpeg 中用于描述输入格式(如文件容器、设备流等)的核心结构体,属于 libavformat 库的一部分。其主要功能是定义解封装(demuxing)过程中如何解析不同格式的输入数据。以下是其关键特性与使用方式的总…...
wpf CommandParameter 传递MouseWheelEventArgs参数
在 WPF 中通过 CommandParameter 传递 MouseWheelEventArgs 参数时,需结合 事件到命令的转换机制 和 参数转换器 来实现。以下是具体实现方案及注意事项: 一、核心实现方法 1. 使用 EventToCommand 传递原始事件参数 通过 Interaction.Tr…...
摆脱养生误区泥沼,拥抱科学养生阳光
在养生的道路上,人们总是满怀热忱地追寻健康之道,然而,诸多似是而非的养生误区却如同泥沼一般,让不少人深陷其中,难以自拔。只有奋力摆脱这些误区的束缚,才能拥抱科学养生的温暖阳光,真正实现身…...
FreeRtos实战从入门到精通--任务创建和删除(动态方法)--事了拂衣去,深藏功与名
FreeRtos是之前的一些聪明的工程师写的免费且开源的嵌入式实时操作系统代码,由于我们实际工作中不需要再去写rtos,我们只需要用就行了,所以博主这里只分享项目工程实战相关的内容,具体rtos源码,可以无需理会࿰…...
卷积神经网络进化史:从LeNet-5到现代架构的完整发展脉络
摘要 本文系统梳理卷积神经网络(CNN)从诞生到繁荣的发展历程。从1998年Yann LeCun开创性的LeNet-5出发,重点解析2012年引爆深度学习革命的AlexNet,并详细拆解后续演进的五大技术方向:网络深度化(VGG)、卷积功能强化(ResNet)、检测任务迁移(F…...
《Qt C++ 项目中升级 GCC 版本的完整指南》
Qt C++ 项目中升级 GCC 版本的完整指南 在 Qt C++ 项目中升级 GCC 版本可能会影响编译工具链、Qt 库兼容性以及项目配置。以下是针对不同操作系统的升级步骤和注意事项: 一、为什么需要升级 GCC 版本? C++ 标准支持:新版本 GCC 支持 C++17/20 等新标准特性性能优化:编译速…...
Baklib赋能企业知识管理数字化转型
Baklib驱动知识智慧转化 在数字化浪潮中,企业知识资产的碎片化与低效流转已成为制约业务创新的核心瓶颈。Baklib作为新一代知识中台,通过构建智能化的知识治理体系,将分散的文档、数据与经验转化为可复用的业务智慧。其核心能力体现在多模态…...
LeetCode240. 搜索二维矩阵 II(巧妙转换)
编写一个高效的算法来搜索m x n矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 题目中最关键的信息就是每行从左到右升序,每列从左到右升序,如果暴力的话就用不到…...
AVFormatContext 再分析二
说明 :将 avfromatContext 的变量依次打印分析,根据ffmpeg 给的说明,猜测,结合网上的文章字节写测试代码分析二。 37 AVInputFormat *iformat; /** * The input container format. * * Demuxing only, set by avfo…...
leetcode0096. 不同的二叉搜索树-medium
1 题目:不同的二叉搜索树 官方标定难度:中 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出…...
【科研绘图系列】R语言绘制世界地图(map plot)
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图输出图片系统信息介绍 【科研绘图系列】R语言绘制世界地图(map plot) 加载R包 library(ggmap) library(RColorBrewer) library(pals) …...
【原创】风云扫描王[特殊字符]OCR识别翻译!证件照
📣文字识别,文字提取,扫描翻译,证件扫描,表格识别,PDF加水印等一体的扫描应用。扫描任何东西,包括文件、纸质笔记、收据和书籍,把它们扫描成清晰的PDF文件和图像。使用OCR技术将图像…...
Fabrice Bellard(个人网站:bellard.org)介绍
Fabrice Bellard 是法国人,国际知名程序员。 Fabrice Bellard(个人网站:bellard.org)是计算机领域最具影响力的程序员之一,其贡献跨越多个技术领域并持续推动开源生态发展。以下是其关键成就与技术贡献的梳理&…...
Linux电源管理(5)_Hibernate和Sleep功能介绍
原文:Linux电源管理(5)_Hibernate和Sleep功能介绍 1. 前言 Hibernate和Sleep两个功能是Linux PM的核心功能,它们的目的是类似的:暂停使用——>保存上下文——>关闭系统以节电>恢复系统——>恢复上下文——>继续使用。 本文…...
【C/C++】Linux的futex锁
文章目录 Linux Futex1. 概述2. 核心设计思想3. Futex 系统调用接口4. 核心操作4.1 阻塞等待 (FUTEX_WAIT)4.2 唤醒线程 (FUTEX_WAKE)4.3 进阶操作 5. Futex 的使用场景5.1 实现用户态互斥锁 (Mutex)5.2 实现条件变量 (Condition Variable) 6. Futex 的优缺点7. Futex 与传统同…...
ChatGPT:重塑人工智能交互范式的破晓之作
2022年11月30日,总部位于旧金山的研究公司OpenAI正式发布了ChatGPT——一款以病毒式传播速度席卷全球的AI聊天机器人。它不仅能像人类一样生成内容、回答问题和解决问题,更在推出后的两个月内吸引了超过1亿月活跃用户,刷新了消费级技术应用的…...
java面向对象编程【高级篇】之特殊类
目录 🚀前言🌟final关键字💯常量 🦜单例类💯饿汉式单例类💯懒汉式单例类 ✍️枚举类🐍抽象类💯应用场景💯模版方法设计模式 ⚙️接口💯实现类💯接…...
JVM 一文详解
目录 JVM 简介 JVM 中的内存区域划分 1. 堆(一个进程只有一份 ------ 线程共享) 2. 栈(一个进程可以有 N 份 ------ 线程私有) Java 虚拟机栈: 本机方法栈: 3. 程序计数器(一个线程可以…...
PVD中断检测掉电
文章目录 概述配置掉电擦写注意 概述 STM32 PVD功能具体可以检测到上电、掉电瞬间,其处理方式有中断响应及事件响应。掉电设置为上升沿触发,上电为下降沿触发 配置 1.开启PVD中断并设置其优先级 2.配置响应中断或事件的阈值电压 3.配置响应模式 生成…...
Nginx — 防盗链配置
防盗链简述 防盗链是一种保护网络资源所有者权益的技术手段,旨在防止未经授权的用户或网站通过直接链接的方式盗用资源,以下是关于防盗链的简述: 原理 基于请求头验证:服务器通过检查请求头中的特定字段,如Referer字…...
题解:P2485 [SDOI2011] 计算器
### 思路 本题是一个比较模板化的题目。 #### 一操作 考虑使用快速幂。 快速幂,只需要把 $k$ 变成二进制即可实现 $\Theta(\log k)$ 的时间复杂度。 实现方法: cpp long long qmi(long long a,long long k,long long p){ long long res 1; …...
【算法刷题笔记day one】滑动窗口(定长基础版)
前言 hello大家好呀 好久不见,上次更新是去年12月份的事情了。这段时间好好沉淀了一下,打了几场比赛,论文也写了一些,也收集了不少信息,对未来方向也有了不一样的计划。 这个算法系列可以说是接着我之前的数据结构系…...
Redis从入门到实战实战篇2
面试重点:本篇包含悲观锁,乐观锁,多线程以及分布式锁的知识 目录 3.优惠卷秒杀 3.1 -全局唯一ID 3.2 -Redis实现全局唯一Id 3.3 添加优惠卷 3.4 实现秒杀下单 3.5 库存超卖问题分析 3.6 乐观锁解决超卖问题 3.7 优惠券秒杀-一人一单 …...
代码随想录算法训练营Day43
力扣300.最长递增子序列 力扣674.最长连续递增子序列【easy】 力扣1143.最长公共子序列【medium】 力扣718.最长重复子数组【medium】 一、力扣300.最长递增子序列【medium】 题目链接:力扣300.最长递增子序列 视频链接:代码随想录 题解链接:…...
Scrapy框架之【settings.py文件】详解
settings.py 文件的主要作用是对 Scrapy 项目的全局设置进行集中管理。借助修改这个文件中的配置项,你可以对爬虫的行为、性能、数据处理等方面进行灵活调整,而无需修改爬虫代码。 ①默认英文注释settings.py # Scrapy settings for douban project # …...
Nginx发布Vue(ElementPlus),与.NETCore对接(腾讯云)
案例资料链接:https://download.csdn.net/download/ly1h1/90745660 1.逻辑说明 1.1 逻辑示意图 # 前端请求处理逻辑图浏览器请求流程: 1. 浏览器发起请求├─ 开发环境(DEV)│ ├─ 请求URL: http://192.168.0.102:3000/api/xxx│ └─ 被Vite代理处理└─ 生产…...
深入探索 AAC 编码原理与 ADTS 格式:音频世界的智慧结晶
在数字音频的广阔领域中,AAC 编码及其相关的 ADTS 格式扮演着至关重要的角色。无论是在我们日常使用的音乐 APP,还是高清视频中的音频部分,都能看到它们的身影。今天,就让我们深入探索 AAC 编码原理与 ADTS 格式的奥秘,…...