Go语言技术文章
-
文章 · linux | 2天前 | Linux · 系统调用 · 进程排查 · strace · 运维调试 · Linux strace 文件访问 strace -f follow-forks 子进程排查
服务主进程看起来没有打开目标文件,但真正访问动作发生在 fork 出来的子进程时,strace -f 能把这条调用链串起来。本文用 follow-forks、-e trace=%file 和 -o 输出文件逐步缩小范围,并说明如何核对 PID、路径与返回值。282 收藏 -
用 pathlib.Path.resolve 规范化用户提供的文件名,并通过根目录边界校验拦截 .. 与符号链接带来的目录穿越风险。414 收藏 -
Go 的 log/slog 可以把日志级别集中交给 HandlerOptions 管理,再用 LevelVar 在运行时切换,而 ReplaceAttr 适合统一字段格式。本文用一条可运行的配置链说明三者的职责边界、切换时机与验收方法。310 收藏 -
用 multiprocessing.shared_memory 让多个 Python 进程直接访问同一块缓冲区,重点处理 create、attach、close、unlink 的生命周期,以及命名冲突和释放验收。399 收藏 -
Go 测试里的临时目录、数据库连接和后台 goroutine 不该靠测试末尾的一行手工清理。用 testing.TB.Cleanup 注册逆序清理函数,再结合 t.Run 与 t.Parallel 的父子边界,可以让失败测试和并行子测试都回收自己的资源。159 收藏 -
周期任务看起来每分钟执行一次,实际却可能因单次执行超时、未捕获异常或重复创建调度器而失控。本文拆解固定频率调度下的任务不重叠、异常终止和恢复路径,给出可验证的 Java 写法。387 收藏 -
用一个订单报价查询示例说明 CompletableFuture.exceptionallyCompose 如何把异常恢复串成新的异步阶段,并核对 exceptionally、exceptionallyAsync、orTimeout 的边界。233 收藏 -
PHP 的 parse_str() 不会把同名普通参数自动收集成数组;需要用方括号命名,并通过第二个参数接收结果。本文用可运行示例核对覆盖规则、键名转换和 max_input_vars 边界。282 收藏 -
Go 1.27 让 go tool trace -http=:6060 默认只监听本机。本文结合远程排障场景,拆解本机采集、受控转发、诊断回收和验证边界,避免为了看 Trace 把调试服务直接暴露到公网。273 收藏 -
科技周边 · 业界新闻 | 2天前 | 云原生 · 安全 · kubernetes · 版本更新 · 策略治理 · Kubernetes 1.37 manifest-based admission control AdmissionConfiguration staticManifestsDir CEL
Kubernetes v1.37 将基于 manifest 的准入控制配置提升到 Beta,AdmissionConfiguration 可从 staticManifestsDir 加载 Webhook 与 CEL 策略。本文用策略加载路径、API Server 重启与 etcd 不可用场景,拆解它解决的控制面风险和采用边界。208 收藏 -
Embedding 模型切换后,向量维度、距离度量和索引构建参数可能同时变化,旧索引不能靠改字段继续复用。本文用 pgvector 的 vector(1536)、vector(3072) 与 HNSW 示例,给出双写迁移、验收和可回滚方案。222 收藏 -
大模型以流式方式返回 JSON 时,任意一个分片都可能停在字符串或对象中间。本文用 Go 写一个增量缓冲器,以括号配对判断候选完整度,最后再用标准 JSON 解析和业务字段校验收口。284 收藏 -
Go 1.23 引入的 unique 包适合把可比较值规范化为可比较的 Handle。本文用一个小型标签池说明 unique.Make、Handle.Value 和垃圾回收之间的边界:句柄要保留多久、为什么比较更轻,以及何时不该把它当成永久缓存。322 收藏 -
大 Hash 不适合一次性取出全部字段。本文用 Redis HSCAN 配合 MATCH 和 COUNT 分批找出过期字段,再用 HDEL 小批量删除,解释游标归零、COUNT 非硬上限、并发写入和空 Hash 清理等边界。353 收藏 -
用 MySQL 8.4 的 REGEXP_REPLACE 清洗带空格和分隔符的订单编码,核对捕获组替换、NULL 返回值与更新前后的结果,避免把异常数据悄悄改坏。133 收藏