linux CFS:完全公平调度器与非定长cpu时间片

当前 Linux 内核(5.x 及以上版本)默认的进程调度器是 **CFS(Completely Fair Scheduler,完全公平调度器)**,而非传统的 **Round Robin(RR,轮询调度)**。 --- ### **1. CFS:完全公平调度器** #### **(1) 基本设计** - **目标**:通过动态计算进程的**虚拟运行时间(vruntime)**,实现所有任务对 CPU 时间的公平分配。 - **核心机制**: - **红黑树排序**:...阅读全文

java技术圈 2025-03-28 18:08:01 dalang

Redisson 延迟队列的并发安全机制

基于 Redisson 实现延迟队列时,**并不需要显式使用分布式锁**,但其底层通过 **Redis 原子操作和 Lua 脚本** 确保了并发安全。 --- ### 一、Redisson 延迟队列的并发安全机制 1. **原子性操作替代锁** Redisson 在操作 Redis 数据结构(如 zset、list)时,**通过 Lua 脚本封装多步操作**,确保原子性。例如: • **任务转移**:从 `redisson_delay_queue_t...阅读全文

java技术圈 2025-03-28 17:58:35 dalang

Redisson 分布式锁的退避策略和事件监听

Redisson 分布式锁在无法立即获取锁时,其内部实现并非采用无脑的 `while` 循环轮询,而是通过 **退避策略 + 事件监听** 的组合机制优化性能,避免 CPU 资源浪费。 --- ### 一、锁获取失败的重试策略 1. **初次尝试失败后的退避机制** • 当首次获取锁失败时,Redisson 会基于 **随机退避算法** 等待一段时间再重试。例如,设置最大重试次数和最小/最大退避时间(如 `100ms~3s`),避免多个客户端同时竞争导致“惊...阅读全文

java技术圈 2025-03-28 17:55:18 dalang

【完结11章】SpringBoot 3.x + Netty + MQTT 实战物联网智能充电桩

【完结11章】SpringBoot 3.x + Netty + MQTT 实战物联网智能充电桩 物联网(Internet of Things,简称 IoT)是一种通过互联网将各种物理设备、传感器、软件以及其他技术连接在一起,使它们能够相互通信和交换数据的网络系统。以下是物联网的核心概念和特点:‌ 1. ‌物联网的定义‌ 物联网是指通过信息传感设备,按约定的协议,将任何物体与网络相连接,物体通过信息传播媒介进行信息交换和通信,以实现智能化识别、定位、跟踪、监管等功能。 2. ‌...阅读全文

java技术圈 2025-03-28 16:11:40 woaidaqipaiqiu1 等

Redisson 延迟队列的并发安全机制

基于 Redisson 实现延迟队列时,**并不需要显式使用分布式锁**,但其底层通过 **Redis 原子操作和 Lua 脚本** 确保了并发安全。 --- ### 一、Redisson 延迟队列的并发安全机制 1. **原子性操作替代锁** Redisson 在操作 Redis 数据结构(如 zset、list)时,**通过 Lua 脚本封装多步操作**,确保原子性。例如: • **任务转移**:从 `redisson_delay_queue_tim...阅读全文

java技术圈 2025-03-28 15:52:51 dalang

AI大模型系统实战

极客时间-AI大模型系统实战AI大模型系统实战:从架构设计到生产部署的全流程指南一、大模型技术栈全景解析1.1 主流大模型架构对比模型类型代表模型参数量级适用场景硬件需求通用基座模型GPT-4、Claude百亿-万亿多任务处理、“获课”知识问答A100/H100集群垂直领域模型BloombergGPT十亿-百亿金融、itxt.top/4442/ 医疗等专业领域A800服务器轻量化模型LLaMA-2-7B十亿以下移动端/边缘设备RTX4090/T4多模态模型GPT-4V千亿级图文理解、跨模态生成H...阅读全文

java技术圈 2025-03-28 10:05:30 xiao_wen123

Spring Security中的CSRF防护机制深度解析与实战指南

--- #### **一、CSRF攻击原理与危害** **CSRF(跨站请求伪造)** 是一种利用用户已认证身份发起恶意请求的攻击方式。攻击者诱导用户访问恶意页面,该页面携带伪造请求(如转账、修改密码)发送至目标网站,由于浏览器自动携带用户的认证Cookie,服务端可能误认为是合法操作。 **典型攻击流程**: 1. 用户登录信任网站A,获取会话Cookie; 2. 用户访问恶意网站B,触发对网站A的请求(如隐藏表单或图片); 3. 浏览器自动携带...阅读全文

java技术圈 2025-03-28 00:22:07 dalang

MySQL与Direct I/O:绕过内核缓存的设计与性能优化

--- ### MySQL与Direct I/O:绕过内核缓存的设计与性能优化 --- #### 引言 在数据库系统中,I/O性能是影响整体效率的核心因素之一。MySQL(尤其是InnoDB存储引擎)通过**Direct I/O**(直接I/O)和**用户态缓存管理**的设计,在提升性能的同时确保数据一致性。本文将深入探讨这一机制的原理、实现及其背后的权衡。 --- ### 一、Direct I/O的基本原理 #### 1. 什么是Direct I/O?...阅读全文

java技术圈 2025-03-28 00:20:23 dalang

select 和 poll 为什么需要拷贝fd?

在Linux中,`select`、`poll`和`epoll`都是I/O多路复用的机制,用于同时监控多个文件描述符(fd)的状态。它们在处理文件描述符集合时的数据拷贝行为有显著差异,直接影响性能。 --- ### **1. `select` 和 `poll` 为什么需要拷贝fd?** #### **(1) 设计原理** - **`select`**: 每次调用时,用户需要将**所有待监控的fd集合(`fd_set`)从用户空间拷贝到内核空间**,内核遍历这些fd的状态后...阅读全文

java技术圈 2025-03-28 00:00:12 dalang

TCP 滑动窗口 拥塞窗口 RTT与发送报文的个数的关系

在TCP协议中,**一个RTT(往返时间)确实是一个报文从发送到接收确认的时间**,但通过**滑动窗口机制**,TCP允许在等待确认的过程中**连续发送多个报文**,从而显著提高网络利用率。 --- ### **1. RTT的定义与基本概念** - **RTT(Round-Trip Time)**:指一个数据包从发送方发出到接收方返回确认(ACK)所需的时间。例如,若发送方在时间`t0`发送报文,接收方在`t1`返回ACK,则RTT = `t1 - t0`。 - **传统停止等待...阅读全文

java技术圈 2025-03-27 20:43:09 dalang

TCP拥塞控制

TCP拥塞控制算法通过动态调整发送窗口大小来平衡网络负载与传输效率,其核心机制包括**慢启动(Slow Start)**、**拥塞避免(Congestion Avoidance)**、**快速重传(Fast Retransmit)**和**快速恢复(Fast Recovery)**。 --- ### 1. **慢启动(Slow Start)** **目标**:快速探测可用带宽,避免初次连接时突然淹没网络。 **规则**: - 初始拥塞窗口(`cwnd`)为1 MSS(最...阅读全文

java技术圈 2025-03-27 20:34:00 dalang

IPv6路由表优化机制及用户感知分析

### IPv6路由表优化机制及用户感知分析 #### **一、IPv6路由表缩小的技术原理** IPv6通过**聚类(Aggregation)原则**设计地址分配策略,使得路由表条目显著减少。其核心机制包括: 1. **层次化地址结构**: IPv6全球单播地址采用分层设计(如全球路由前缀、子网ID、接口ID),允许运营商和机构将连续地址块聚合为单一前缀。例如,某ISP分配到`2001:db8::/32`前缀后,可为多个客户分配`2001:db8:abcd::/48`...阅读全文

java技术圈 2025-03-27 20:18:06 dalang

​cwnd(拥塞窗口)与 TCP 发送缓冲区的关系

cwnd(拥塞窗口)并不等同于TCP的发送缓冲区。发送缓冲区是内核中存储待发送和已发送但未确认数据的内存区域,而cwnd是一个动态调整的数值,用于控制网络中的数据传输速率,避免拥塞。两者共同影响TCP的发送行为,但功能和机制不同。 ### **cwnd(拥塞窗口)与 TCP 发送缓冲区的关系** #### **1. 核心区别** **cwnd 不是 TCP 发送缓冲区**,但两者共同影响 TCP 的发送速率和网络性能。以下是具体分析: • **cwnd(拥塞窗口)**...阅读全文

java技术圈 2025-03-27 20:16:41 dalang

ICMPv6 如何替代 ARP 功能?

IPv6 中确实不存在类似于 IPv4 的 ARP(地址解析协议)的独立协议(如用户提到的“ARP6”),这是因为 IPv6 通过 **ICMPv6(Internet Control Message Protocol version 6)** 将地址解析、邻居发现等功能直接集成到协议栈中,并实现了更高效的自动化机制。 --- ### **1. ICMPv6 如何替代 ARP 功能?** 在 IPv4 中,ARP 协议通过广播请求和单播应答实现 **IP 地址到 MAC 地址的映...阅读全文

java技术圈 2025-03-27 20:07:06 dalang

TCP长连接的序列号溢出问题

#### 一、TCP长连接的序列号溢出问题 TCP序列号是一个**32位无符号整数**(范围0~4,294,967,295),理论上传输超过4GB数据后会发生溢出(归零)。但在实际应用中,协议设计通过以下机制避免问题: 1. **时间戳选项**: TCP时间戳(Timestamp Option)记录数据包发送时间,即使序列号溢出,接收方也能通过时间差区分新旧连接的数据包。 2. **随机初始序列号(ISN)**: 每次建立新连接时,初始序列号由随机算法生成,...阅读全文

java技术圈 2025-03-27 18:04:46 dalang

Kubernetes集群核心概念 Service

Kubernetes集群核心概念 ServiceKubernetes集群核心概念深度解析一、Kubernetes架构概述Kubernetes(简称K8s)作为容器编排领域的事实标准,“获课”itxt.top/14343/ 其架构设计遵循着明确的核心原则:控制平面(Control Plane)组件:API Server:集群的"前门",处理所有REST请求etcd:高可用的键值存储,保存集群所有配置数据Scheduler:负责将Pod分配到合适的NodeController Manager:运行各...阅读全文

java技术圈 2025-03-27 14:49:19 xiao_wen123

git reset的三种模式

Git 的 `reset` 命令是版本管理中的核心工具,其三种模式(`soft`、`mixed`、`hard`)的区别主要体现在对**暂存区(Index)**和**工作区(Working Directory)**的影响上。 --- ### 一、`git reset --soft` 1. **核心行为** • 仅移动 `HEAD` 指针到目标提交,**暂存区和工作区内容不变**。例如,若从提交 C3 回退到 C2,C3 的修改仍保留在暂存区。 • 相当于将 C...阅读全文

java技术圈 2025-03-27 14:18:40 dalang

分库分表与基因法

基因法是分库分表场景中解决多维度查询问题的核心设计策略,其核心思想是**将非分片键的查询信息(基因)嵌入到分片键中**,使得非分片键的查询也能直接定位到目标分片,避免跨库扫描和全表路由的问题。 --- ### 一、基因法的核心原理 1. **基因嵌入机制** • 通过将非分片键的**部分特征值(基因)**嵌入到分片键中,使得分片键同时携带多个维度的信息。例如:订单号中嵌入用户ID的末几位二进制位,使得按用户ID查询时可直接定位分片。 • **数学基础**:基于模...阅读全文

java技术圈 2025-03-27 11:22:11 dalang

比Guava Cache更好的缓存库Caffeine

--- ### 一、功能全面性:Caffeine兼容并超越Guava 1. **功能覆盖与扩展** Caffeine完全兼容Guava Cache的API设计(如缓存过期策略、监听器、加载器等),同时新增了以下核心功能: • **异步缓存(Async Cache)**:支持通过线程池异步处理缓存加载和清理操作,避免阻塞主线程,提升并发性能 • **写入外部资源(Write-Through)**:允许将缓存数据同步写入数据库或其他持久化存储,实现...阅读全文

java技术圈 2025-03-27 01:16:15 dalang

缓存淘汰算法W-TinyLFU

W-TinyLFU算法是一种**融合LFU与LRU双重特性的混合淘汰算法**,其本质是通过分层机制将短期突发流量与长期热点数据分离处理。 --- ### 一、缓存结构设定(以总容量100为例) 1. **窗口缓存(Window Cache)** • **容量**:总容量的1%(即1个槽位) • **淘汰策略**:LRU(应对突发流量) *示例*:新访问的数据A、B、C会先进入此区域,若已满则淘汰最早进入的数据。 2. **主缓存(Mai...阅读全文

java技术圈 2025-03-27 01:14:54 dalang