结合 Kratos + net/http + gRPC-Go + database/sql 连接池,说明请求高峰时 goroutine 如何增长、什么在限制它、以及线上真正该盯什么。一句话结论不是框架实现了“按 QPS 动态调协程池”,而是 Go 默认模型:一个并发请求(连接/流)对应一个 handler goroutine,请求结束就退出。 所以并发上来时,goroutine 数会跟着涨...
最近在复习云原生微服务架构,越学越觉得之前的自己太天真了。以前总觉得把服务拆开、用 Kubernetes(K8s)跑起来就万事大吉了。直到遇到线上要搞 5% 流量的灰度发布(金丝雀发布),或者几个微服务天天因为网络抖动报超时、而我又不知道到底是哪两个服务之间卡住了的时候,我才发现:微服务之间的网络通信和流量治理,真的是个大坑!在疯狂补课之后,我终于摸到了解决这个痛点的神器——Istio。今天...
Go 的垃圾回收到底在忙什么一篇讲人话的 GC 入门。文中所有 gctrace、基准测试、逃逸分析的输出,都是在 Go 1.26.3 / darwin-arm64 / Apple M4 上真实跑出来的,不是手写示意。你大概率没写过一行跟 GC 有关的代码,但它一直在你的程序里干活。这篇文章想把三件事讲清楚:Go 的 GC 是怎么判断一个对象还有没有用的;程序在跑、指针在变,它怎么保证不误杀;...
摘要:在日常软件开发与团队协作中,如何保证代码规范、减少潜在 Bug,并在构建阶段及早拦截安全漏洞?本文将带你全面了解代码质量扫描利器 SonarQube 的核心功能、支持语言及落地实战,并与 GitHub CodeQL、Snyk、Semgrep 等主流竞品进行深度横向对比,帮助你和团队挑选最适合的代码静态分析方案。一、 为什么我们需要代码扫描工具?随着项目规模的扩大和团队人数的增加,代码质...
前言ClickHouse 是一款面向大数据分析场景的列式数据库,尤其适合日志分析、行为统计、实时指标计算和多维度报表等 OLAP 场景。本文将从以下几个方面介绍 ClickHouse:ClickHouse 是什么ClickHouse 的底层数据结构ClickHouse 为什么查询速度快ClickHouse 的适用场景ClickHouse 开发规范与注意事项常见 MergeTree 系列存储引...