• 首页
  • 归档
  • 分类
  • 标签
  • 关于
Xun's Blog
CPU故障排查

CPU故障排查

在压测考试期间,作者发现resource、teacher-admin等微服务的CPU利用率达到100%,但相关负责同学并不了解原因。经过排查,作者发现需要进入pod内部使用jstack等工具进行线程分析,但pod基于jre镜像构建,缺少jdk工具,因此通过配置阿里云镜像源并安装procps、openjdk-11-jdk等工具解决了环境问题。 作者通过TOP命令定位进程pid,结合ps和jst
2023-12-17
开发 > 后端
#后端 #java #优化 #水杉
订单超时处理

订单超时处理

在电商场景中,订单超时自动处理(如未付款取消、未发货关闭、自动收货等)是一个核心需求。文章分析了多种技术实现方案及其优缺点: 1. **DelayQueue方案** - 通过延迟队列按超时时间排序,单线程轮询处理。启动时需从数据库加载未完成订单。 - 优点:实现简单,无第三方依赖。 - 缺点:内存占用高,无法分布式扩展,仅适合小规模场景。 2. **RabbitM
2023-12-15
系统架构 > 设计
#文章精读
考试重构-压测

考试重构-压测

文章摘要: 该技术文档描述了在线考试系统的优化过程,主要解决原有系统在高并发场景下的性能问题。原系统存在Redis缓存使用不合理、代码耦合度高、考试模式分散等问题,导致30人并发就可能出现无法进入考试或提交失败的情况。优化措施包括: 1. **Redis缓存重构**:区分共享数据(题目、考试信息)和个人答题数据,调整缓存时间;删除冗余的预热和判活逻辑,将定时缓存改为上下题切换时触发,减
2023-11-23
开发 > 后端
#后端 #java #优化 #水杉
对账体系建设

对账体系建设

文章主要讨论了清结算系统中因业务复杂度高(场景多、链路长、数据量大)导致的一致性挑战,并重点阐述了对账系统在保障资金安全中的作用。 **核心问题**:70%的系统问题源于上下游交互的“一致性问题”,具体表现为漏结、重复结、错结三类数据不一致场景。尽管可通过强一致性协议(如TCC)或最终一致性方案(如消息事务)在事中降低风险,但因环境故障、代码缺陷等因素,完全预防不可行,需依赖事后对账机制发现
2023-11-15
系统架构 > 稳定性
#文章精读
TCP数据粘包

TCP数据粘包

网络层协议通常分为四层,数据以数据包形式传输,每经过一层,数据包头部会增加特定信息(如TCP头含端口号和序列号,IP头含IP地址和长度,MAC头含MAC地址)。数据链路层限制传输包大小(MTU),若数据超过MTU,TCP会将数据分段为MSS(最大分段大小)。MTU一般为1500字节,MSS为1460字节(扣除IP和TCP头部)。 对于小数据包,TCP的Nagle算法优化网络IO效率:若数据未
2023-10-09
计算机基础 > 计算机网络
#计算机网络 #TCP #文章精读
一文搞懂 Redis 架构演化之路(腾讯技术工程)

一文搞懂 Redis 架构演化之路(腾讯技术工程)

Redis是目前最流行的缓存中间件,其稳定性和高性能的实现经历了多方面的优化和架构演进。文章从单机版Redis的问题出发,逐步分析了如何通过持久化、主从集群、哨兵机制和分片集群来解决缓存系统面临的各类挑战。 单机版Redis的主要问题是宕机后数据丢失,影响读取性能并可能导致数据永久丢失。为了解决数据丢失问题,Redis引入了两种持久化机制:AOF(记录每条命令)和RDB(数据快照)。AOF保证了
2023-09-10
系统架构 > 高性能
#文章精读 #redis #高性能
一个新进程的诞生[linux源码趣读]

一个新进程的诞生[linux源码趣读]

这篇文章主要讲解了以下内容: 1. **内核态切换到用户态**:通过 `move_to_user_mode` 函数从内核态切换到用户态,利用中断返回机制模拟切换过程,确保代码在用户态下运行。 2. **进程创建(fork)**:通过 `fork` 系统调用创建新进程: - `find_empty_process` 找到空闲的进程槽位。 - `copy_process` 复制当前进程
2023-07-07
计算机基础 > 操作系统 > linux源码趣读
#操作系统 #linux
DDoS技术鉴赏

DDoS技术鉴赏

分布式拒绝服务(DDoS)攻击通过僵尸网络(如木马感染或直接购买受控设备)发起,其特点在于利用网络协议的每一层进行攻击,属于“阳谋”——攻击原理公开但防御困难。典型攻击方式包括: 1. **带宽耗尽型攻击**: - **ICMP/UDP洪泛**:伪造大量数据包占用目标带宽。 - **DNS放大攻击**:利用DNS协议反射和放大流量。 - **IP伪造反射攻击**
2023-07-01
计算机基础 > 网络
#计算机网络
大战前的初始化工作[linux源码趣读]

大战前的初始化工作[linux源码趣读]

这篇文章详细介绍了操作系统启动过程中 `main.c` 中的 `main` 方法的执行流程。主要内容如下: 1. **内存边界设置**:根据内存大小设置 `memory_end` 和 `buffer_memory_end`,标记内存使用的范围。 2. **内存管理初始化**:`mem_init` 初始化内存分页管理,使用 `mem_map` 表记录内存页使用状态,方便后续的内存申请与释放。 3.
2023-07-01
计算机基础 > 操作系统 > linux源码趣读
#操作系统 #linux
进入内核前的苦力活[linux源码趣读]

进入内核前的苦力活[linux源码趣读]

计算机系统启动及内存管理流程主要包括以下几个关键步骤: 1. **初始启动阶段** - CPU从ROM的`0xFFFF0`地址(BIOS入口)开始执行。 - BIOS加载硬盘第一个扇区的代码(bootsect)到内存的`0x7C00`地址,随后将其复制到`0x90000`。 - 跳转到`go`代码,设置`cs`、`ds`、`ss`、`sp`等寄存器,完成早期初始
2023-06-23
计算机基础 > 操作系统 > linux源码趣读
#操作系统 #linux
12345

搜索

Hexo Fluid
总访问量 次 总访客数 人