Go 性能分析的“新范式”:用关键路径分析破解高并发延迟谜题

本文永久链接 – https://tonybai.com/2025/12/24/profiling-request-latency-with-critical-path-analysis 大家好,我是Tony Bai。 “如果你喜欢快速的软件,那么你来对地方了。” 在 GopherCon 2025 上,来自 Datadog 的工程师、Go Performance and diagnostics小组成员 Felix Geisendörfer 以这样一句开场白,将我们带入了一个 Go 性能分析的全新领域。 ...

December 24, 2025 · 6 min · Tony Bai

直面依赖之痛与TLS简化:GopherCon 2025贡献者峰会核心纪要深度解读

本文永久链接 – https://tonybai.com/2025/09/11/gophercon-2025-contributor-summit-notes 大家好,我是Tony Bai。 GopherCon 2025 贡献者峰会刚刚落下帷幕。在这场Go核心团队与全球顶尖贡献者齐聚一堂的闭门会议中,Go语言的未来方向被激烈地讨论和塑造。这些讨论或许不像发布泛型那样惊天动地,但它们如同地壳深处的板块运动,深刻地影响着Go生态的未来走向——一个更加成熟、务实,并决心直面企业级开发真实痛点的Go正在到来。 ...

September 11, 2025 · 8 min · Tony Bai

Google 揭秘生产环境调试心法:SRE 与 SWE 的四大思维差异与实战路径

本文永久链接 – https://tonybai.com/2025/mm/dd/debugging-Incidents-in-google 大家好,我是Tony Bai。 尽管 Google 的 SRE 手册为我们描绘了理想的运维蓝图,但在“炮火连天”的生产事故现场,工程师的真实反应往往是另一番景象。 最近,一篇发表于 ACM Queue 的研究深入剖析了 Google 工程师(包括 SRE 和 SWE)在处理复杂分布式系统生产问题时的真实行为模式。这项研究通过对大量事后复盘(postmortem)的分析和深度访谈,揭示了不同角色工程师在思维模型、工具选择上的显著差异,并总结出了一套普遍适用的“调试构建块”。对于每一位构建和维护大规模服务的工程师来说,这些来自一线的洞察无疑是一份宝贵的实战指南。 ...

August 10, 2025 · 8 min · Tony Bai

持续性能分析正在成为继Metrics、Logs 和 Traces之后,可观测性的“第四大支柱”

本文永久链接 – https://tonybai.com/2025/08/04/continuous-profiling-fourth-pillar 大家好,我是Tony Bai。 凌晨两点,运维平台的警报刺破了宁静。P99 延迟飙升,用户服务几近瘫痪。作为 Go 工程师,你的脑海中闪过无数可能:是数据库慢了?是下游服务超时?还是某个新上线的 goroutine 泄露了?你急忙打开监控面板,Metrics (指标) 显示 CPU 和内存平稳,Logs (日志) 没有明显异常,Traces (追踪) 只告诉你请求在服务内部耗费了大量时间,却不知所踪。这个场景,是现代软件运维中一个令人沮丧的“最后一公里”难题。 ...

August 4, 2025 · 7 min · Tony Bai

云原生时代,如何用RED三板斧搞定服务监控?

云原生时代,如何用RED三板斧搞定服务监控? - Tony Bai =============== Tony Bai 一个程序员的心路历程 Google Go语言编码风格规范 Google Go语言编码风格规范:指南篇 Google Go语言编码风格规范:决定篇 Google Go语言编码风格规范:最佳实践篇 Go语言第一课FAQ ...

May 26, 2025 · 8 min · Tony Bai

Go 1.22新特性前瞻

本文永久链接 – https://tonybai.com/2023/12/25/go-1-22-foresight 美国时间2023年12月20日,Go官方宣布Go 1.22rc1发布,开启了为期2个多月的、常规的公测之旅,Go 1.22预计将于2024.2月份正式发布! ...

December 25, 2023 · 16 min · Tony Bai

Service Weaver:以单体形式编码,以微服务形式部署

本文永久链接 – https://tonybai.com/2023/10/09/service-weaver-coding-in-monolithic-deploy-in-microservices 分布式应用的主流架构模式演化为微服务架构已经有些年头了。微服务、DevOps、持续交付和容器技术(k8s)是构成最初云原生概念的核心要素。它们相生相拌,共同演进,并推动了云计算全面进入云原生时代。 云原生应用普遍采用微服务架构,遗留的单体应用程序会逐步演进并拆分为多个微服务,新应用则会直接采用微服务架构进行设计与实现。微服务的好处是显而易见的: ...

October 9, 2023 · 24 min · Tony Bai

通过实例理解Go标准库context包

原weibo账号处于jy状态,临时先用小号 https://weibo.com/u/6484441286,欢迎大家关注! “Gopher部落”知识星球双十一新人特惠,领劵加入即享立减88元优惠 – https://t.zsxq.com/078E1QTjM 本文永久链接 – https://tonybai.com/2022/11/08/understand-go-context-by-example 自从context包在Go 1.7版本加入Go标准库,它就成为了Go标准库中较难理解和易误用的包之一。在我的博客中目前尚未有一篇系统介绍context包的文章,很多来自Go专栏或《Go语言精进之路》的读者都希望我能写一篇介绍context包的文章,今天我就来尝试一下^_^。 ...

November 8, 2022 · 19 min · Tony Bai

手把手教你使用ANTLR和Go实现一门DSL语言(第二部分):文法验证

本文永久链接 – https://tonybai.com/2022/05/25/an-example-of-implement-dsl-using-antlr-and-go-part2 在本系列的第一篇文章《手把手教你使用ANTLR和Go实现一门DSL语言:设计DSL语法与文法》中,我们已经为气象学家们设计了一门DSL,建立了语法样例,并用ANTLR4文法将DSL定义了出来。按照外部DSL设计与实现的工作流,在这一篇中,我们将对上一篇设计的DSL文法进行验证,看看ANTLR基于我们设计的文法是否能成功生成解析器代码,并且基于生成的解析器是否可以成功处理我们编写的语法样例。 ANTLR文法验证可分为两个阶段,我们分别来看一下。 一. 验证ANTLR是否能解析我们定义的文法(Tdat.g4) 验证ANTLR是否能解析我们的文法Tdat.g4的过程也是通过antlr4尝试生成DSL语法解析器代码的过程,如果顺利生成目标代码,没有报错,则说明我们的Tdat.g4文法至少是符合ANTLR4对文法的要求的。一旦成功,ANTLR就会在特定目录下生成你期望的语法的解析器(parser)代码,比如下面命令将Tdat.g4文法生成目标代码为Go的解析器实现,生成的Go代码位于当前目录下的parser目录下。 ...

May 25, 2022 · 9 min · Tony Bai

使用Docker Compose构建一键启动的运行环境

本文永久链接 – https://tonybai.com/2021/11/26/build-all-in-one-runtime-environment-with-docker-compose 如今,不管你是否喜欢,不管你是否承认,微服务架构模式的流行就摆在那里。作为架构师的你,如果再将系统设计成个大单体结构,那么即便不懂技术的领导,都会给你送上几次白眼。好吧,妥协了!开拆!“没吃过猪肉,还没见过猪跑吗!”。拆不出40-50个服务,我就不信还拆不出4-5个服务^_^。 ...

November 26, 2021 · 10 min · Tony Bai