2026年09月21日的文章 第6页

https

HTTPS 抓包分析实战:使用 Wireshark 解密 TLS 流量

pren 发布于 2026-09-21

HTTPS 已经成为现代 Web 的默认标准,TLS 加密保护了数据的机密性和完整性,但同时也给网络排查和故障定位带来了挑战。当你需要分析一个 API 请求为什么失败、响应为什么异常时,面对 Wireshark 中满屏的 “Application Data” 往往无从下手。本文将...

阅读(4)评论(0)赞 (0)

go

Go 语言实现高性能限流器:令牌桶与漏桶的工程实现

pren 发布于 2026-09-21

在高并发系统中,限流是保护服务稳定性的第一道防线。无论是 API 网关、微服务间的 RPC 调用,还是数据库访问层,都需要限流器来控制请求速率,防止突发流量打垮后端服务。Go 语言凭借其轻量级 Goroutine 和高效的并发原语,非常适合实现高性能限流器。本文将深入探讨两种经典...

阅读(5)评论(0)赞 (0)

go

Go 语言中 channel 的底层实现与调度机制详解

pren 发布于 2026-09-21

引言 在 Go 语言的并发编程模型中,channel 是最核心的组成部分之一。它不仅是一种数据结构,更是 Goroutine 之间通信和同步的桥梁。Go 语言官方提倡的并发哲学是“不要通过共享内存来通信,而要通过通信来共享内存”,而 channel 正是这一哲学的物理载体。理解 ...

阅读(4)评论(0)赞 (0)

go

深入理解 Go 的 GMP 调度模型:从原理到实战调优

pren 发布于 2026-09-21

Go 语言引以为傲的高并发能力,很大程度上归功于其运行时(Runtime)内置的调度器。与操作系统直接调度内核线程(KSE)不同,Go 采用了一种用户态的调度模型——GMP。理解 GMP 不仅是掌握 Go 并发编程的基石,更是进行高性能服务调优的必经之路。 一、 为什么需要 GM...

阅读(4)评论(0)赞 (0)

go

Go 内存分配器原理剖析:mcache、mcentral 与 mheap 的协作机制

pren 发布于 2026-09-21

Go 语言以高并发和低延迟著称,这背后离不开其精心设计的内存分配器。Go 的内存分配器借鉴了 TCMalloc(ThreadCaching Malloc)的思想,采用多级缓存架构,将内存管理划分为 mcache、mcentral 和 mheap 三个核心组件。它们各司其职、层层配...

阅读(5)评论(0)赞 (0)

go

Go 垃圾回收演进史:从 STW 到并发三色标记的工程实践

pren 发布于 2026-09-21

Go 语言自诞生以来,其垃圾回收器(Garbage Collector,GC)的演进一直是工程界关注的焦点。从早期动辄数百毫秒的 STW(StopTheWorld)停顿,到如今亚毫秒级的并发回收,Go 团队用十年时间完成了一场关于延迟与吞吐的精密平衡术。本文将沿着版本迭代的脉络,...

阅读(6)评论(0)赞 (0)

go

用 Go 实现一个高性能 HTTP 中间件链:设计模式与性能对比

pren 发布于 2026-09-21

在 Go 的 HTTP 服务开发中,中间件链几乎是绕不开的基础设施。无论是日志记录、鉴权、限流、链路追踪,还是 panic 恢复,都需要一种优雅的方式把多个横切关注点串联起来。net/http 标准库提供的 http.Handler 接口和 http.HandlerFunc 适配...

阅读(4)评论(0)赞 (0)

go

Go 接口的底层结构与类型断言性能分析

pren 发布于 2026-09-21

在 Go 语言中,接口是一种核心的抽象机制,它让代码解耦、可测试、可扩展。然而,接口在运行时并非“零成本”。理解接口的底层数据结构,以及类型断言的开销来源,有助于在高性能场景中做出更明智的设计选择。本文将从 iface 与 eface 的内存布局出发,分析类型断言的运行时行为,并...

阅读(6)评论(0)赞 (0)

go

Go 并发编程中的常见陷阱与 race detector 实战

pren 发布于 2026-09-21

Go 语言凭借其轻量级 goroutine 和简洁的 channel 机制,成为并发编程领域的热门选择。然而,并发带来的复杂性并未消失,反而以更隐蔽的方式潜伏在代码中。许多开发者在使用 Go 编写并发程序时,常常掉入一些经典陷阱,而 go test race 或 go run r...

阅读(4)评论(0)赞 (0)

go

从零实现一个 Go 语言的协程池:任务调度与资源控制

pren 发布于 2026-09-21

Go 语言凭借 goroutine 和 channel 构建了极为简洁的并发模型,go func() 几乎成了并发编程的代名词。然而,当系统中存在大量短生命周期任务时,无限制地创建 goroutine 会带来严重的资源问题:内存暴涨、调度开销增大、甚至拖垮整个进程。协程池(gor...

阅读(3)评论(0)赞 (0)