程序员茄子
全部
编程
代码
资讯
案例
综合
联系我们
Go 相关技术文章
php
mysql
shell
go
vue
css
api接口对接
支付接口对接
goose 迁移:开发用时间戳、上线前 fix 转顺序号,Down 段没写就没有回滚
综合
goose 迁移:开发用时间戳、上线前 fix 转顺序号,Down 段没写就没有回滚
2026-11-04 21:31:48
pressly/goose 的落地笔记:SQL 迁移文件注解、MySQL 必开的 parseTime 与 multiStatements、开发用时间戳上线前 fix 转顺序号、embed 内嵌进二进制,以及 Down 段没写就没有回滚这个前提。
goose
数据库迁移
Go
SQL
复制一个 time.Timer 会让整个 Go 程序卡死,panic 只给一句 ts set in timer
编程
复制一个 time.Timer 会让整个 Go 程序卡死,panic 只给一句 ts set in timer
2026-11-04 21:09:36
Go 1.22 里能跑的 *time.NewTimer(d) 赋值,到 1.23 起会让整个程序冻结或抛 ts set in timer,SIGQUIT 的栈里还看不出根因。讲清无缓冲 channel 与可回收改动为何让复制 Timer 必炸、vet copylock 与运行期动态检查的进展,以及指针写法的修法。
Go
定时器
并发
排障
RoadRunner v3:http.middleware 改成从左到右执行,Kafka 重试也不再回写原 topic
编程
RoadRunner v3:http.middleware 改成从左到右执行,Kafka 重试也不再回写原 topic
2026-11-04 21:06:53
RoadRunner v3 升级里几处不报错但改行为的地方:http.middleware 从左到右执行(v5 列表要反转)、Goridge v4 去掉 MessagePack、H2C 只认 prior knowledge、Kafka 重试进进程内队列重启会丢、max_workers 变成"基础池之上的增量"。
RoadRunner
PHP
Go
队列
gopls v0.24.0 的交互式重构:服务端在算 edits 之前先向你提问
编程
gopls v0.24.0 的交互式重构:服务端在算 edits 之前先向你提问
2026-11-04 20:03:26
LSP 的 code action 一直是「无参函数」,服务端只能猜意图。gopls v0.24.0 用与 Dart 团队合作提的 interactive refactoring 提案(LSP #1164),让服务端在算 edits 之前先弹表单收集输入:struct tag 加哪些键、用什么命名风格、实现哪个接口、声明移到哪个文件。附各动作版本、maphash.Hasher 示例、panic("unimplemented") 桩与 import cycle 风险。
Go
gopls
LSP
重构
编辑器
Go 1.24 默认用 MPTCP 监听:Linux 内核 CVE-2026-98432 的排查与缓解
资讯
Go 1.24 默认用 MPTCP 监听:Linux 内核 CVE-2026-98432 的排查与缓解
2026-11-03 21:04:12
Linux 内核 CVE-2026-98432(IPv4 TCP options RCU UAF,CVSS 9.8)的利用前提是暴露 MPTCP 监听,而 Go 1.24 起把 multipathtcp 默认值改成 2,Go 服务在 Linux 上默认就是 MPTCP 监听。给出 ss -Mltnp / go version -m 排查、GODEBUG 与 sysctl 缓解,以及为什么关 MPTCP 不算修复。
Go
Linux
安全
Go 1.27 默认 500 个请求头就回 431:kube-apiserver 大批 group 用户被拒的排查
综合
Go 1.27 默认 500 个请求头就回 431:kube-apiserver 大批 group 用户被拒的排查
2026-11-03 21:01:18
Go 1.27 给 net/http 加了 MaxHeaderValueCount,默认 500 个 header value,超限返回 431。kube-apiserver 上 impersonate 或代理用户 group 超过 500 个就直接被拒,1.35.10 把上限提到 16384。讲清 431 与 413 的区别、头数量怎么数、curl 复现与 Go 侧配置。
Go
运维
Kubernetes
Go 1.27 让 net/http 自动 drain:HTTP/1 连接复用从 710ms 到 150ms
编程
Go 1.27 让 net/http 自动 drain:HTTP/1 连接复用从 710ms 到 150ms
2026-11-03 20:03:41
只取 StatusCode 就 Close 的 HTTP/1 请求,Go 1.26 之前每次都丢连接重建,100 次请求 710ms。Go 1.27 让 Transport 自动异步 drain 未读响应体(上限 50ms / 256KB),代码不变降到 150ms。含手写 drain 四步演进、JSON 换行差一个字节的典型坑,以及 release notes 提示的反向风险。
Go
net
http
性能优化
HTTP
1.1
割接切了地址,旧库还有连接在跑:*sql.DB、DNS TTL、keepalive 三处滞留
综合
割接切了地址,旧库还有连接在跑:*sql.DB、DNS TTL、keepalive 三处滞留
2026-11-03 00:03:54
割接窗口里数据侧切完、连接侧没切完,是旧库流量掉不下去的常见原因。分别拆解 Go *sql.DB 连接池换 DSN 的坑、DNS TTL 与 JVM/resolver 缓存、Nginx upstream 与 conntrack 的 keepalive 滞留,给出旧库 processlist 的判读方法和按连接侧排序的窗口清单。
割接窗口
MySQL
Go
connect
pool
DNS
nginx
kula 部署笔记:单二进制 Linux 监控,Docker 里必须共享 PID 命名空间
综合
kula 部署笔记:单二进制 Linux 监控,Docker 里必须共享 PID 命名空间
2026-11-02 21:31:59
kula 是单二进制 Linux 监控:每秒读 /proc 与 /sys,写入 1s/1m/5m 三层环形缓冲(默认 250/150/50 MB),面板在 27960。笔记给出安装命令、Docker 里为什么必须 --pid host、Prometheus 端点与 AGPLv3 单机定位的取舍。
Go
监控
Linux
Docker
运维
Go 1.27 泛型方法:方法能自带类型参数,接口方法仍然不行
编程
Go 1.27 泛型方法:方法能自带类型参数,接口方法仍然不行
2026-11-02 21:31:47
Go 1.27 允许方法声明自己的类型参数:给出 List.Map 的最小对比、method expression 与实例化的写法,列出四条硬限制(接口方法不能带类型参数、泛型方法不满足接口、reflect 拿不到、实例化递归被拒),最后说明何时仍应写顶层泛型函数。
Go
泛型
语言规范
编译错误
any-sync-bundle 部署笔记:外部地址首启就写死、备份要等干净停止、老 CPU 跑 AIO 会直接 illegal instruction
综合
any-sync-bundle 部署笔记:外部地址首启就写死、备份要等干净停止、老 CPU 跑 AIO 会直接 illegal instruction
2026-11-02 20:02:27
用 any-sync-bundle 单容器自建 Anytype 同步服务器:只开 TCP 33010 与 UDP 33020,默认内置 BadgerDB 与 MongoDB/Redis。重点是三个容易踩的坑——ANY_SYNC_BUNDLE_INIT_EXTERNAL_ADDRS 首启就固化进 bundle-config.yml、改环境变量无效;备份必须等 bundle_shutdown_complete;老 CPU 无 AVX 时内置 MongoDB 直接 illegal instruction。
自托管
Docker
Go
Anytype
运维
双击 Submit 插了两行:一次性 token、幂等键、CSRF 各挡哪种重复
编程
双击 Submit 插了两行:一次性 token、幂等键、CSRF 各挡哪种重复
2026-11-02 00:04:38
CSRF token 是 per-session 的稳定值,连续提交两次都通过;Idempotency-Key 是 header,裸表单浏览器不会带。所以只有 CSRF 的表单双击照样插两行。这篇把一次性提交 token 的 Mint/Scan/Consume 三步写成可跑的 Go 代码,并给出四个判据层面的错误:SETNX+EXPIRE 非原子、select+delete 校验 token 有并发窗口、指纹模式误杀相同内容的合法提交、以及用 429 回应重复提交等于叫客户端退避重试。
重复提交
表单防重
幂等
Redis
Go
HTTP
Go 的 sql.Stmt 与连接池:为什么句柄数约等于连接数乘 SQL 文本数
编程
Go 的 sql.Stmt 与连接池:为什么句柄数约等于连接数乘 SQL 文本数
2026-11-02 00:04:17
Com_stmt_prepare 一直涨、句柄数约等于连接数乘 SQL 文本数,多半不是代码反复 Prepare,而是 DB 级 sql.Stmt 在每条连接上各准备一份。讲清 css 记录机制、interpolateParams 的真实作用域(只影响隐式路径)、Tx.Stmt 反模式,以及先收敛 SQL 文本再调连接池的处置顺序。
prepared
statement
Go
database
sql
MySQL
连接数
mise v2026.10.15:24 小时冷却覆盖所有后端,pin 最新版会解析成 no versions found
编程
mise v2026.10.15:24 小时冷却覆盖所有后端,pin 最新版会解析成 no versions found
2026-11-01 21:32:29
mise v2026.10.15 把默认 24 小时 minimum_release_age 冷却从部分后端扩到全部后端,版本只发布不到 24 小时会解析成 no versions found;另附分钟级配置开关、版本列表改走 mise-versions 主机对自定义源的影响、read_json/read_yaml/read_toml 模板函数与 PowerShell 安装器。
mise
开发工具
版本管理
CI
dotfiles
Go
SILO 20261026 升级笔记:多池删除改成先清旧副本,跨站复制不再 BadDigest,也不能滚动降级
综合
SILO 20261026 升级笔记:多池删除改成先清旧副本,跨站复制不再 BadDigest,也不能滚动降级
2026-11-01 21:31:39
SILO(MinIO fork)20261026 版把多池删除改成先清非权威池再删权威副本,版本桶生命周期只加删除标记时保留远端分层数据,复合 CRC 分片复制透传 FULL_OBJECT 避免 BadDigest;附 mcli 新 pending 状态与退出码语义、升级顺序与一致性边界。
对象存储
S3
MinIO
SILO
运维
Go
Go 1.28 将拒绝 string(int):规则边界、go.mod 生效点与 go fix 顺序
编程
Go 1.28 将拒绝 string(int):规则边界、go.mod 生效点与 go fix 顺序
2026-11-01 21:05:43
Go 1.28 起 string(int) 只在基底类型为 rune/byte 或未类型化 rune 常量时允许,其余按 go.mod 的 go 指令拒绝编译。讲清规则边界、为什么这个转换反直觉、go vet 的 stringintconv 能提前发现,以及两种 go fix 方案的语义差异与「先 fix 再改 go 指令」的顺序。
Go
语言特性
迁移
golang.org/x/net v0.62.0 修的两个 html 漏洞:文本节点合并的 O(n²) 与 raw text 渲染的命名空间判断
资讯
golang.org/x/net v0.62.0 修的两个 html 漏洞:文本节点合并的 O(n²) 与 raw text 渲染的命名空间判断
2026-11-01 21:03:15
golang.org/x/net v0.62.0 修了两个 html 包漏洞:文本节点合并时用字符串拼接导致 O(n²) 分配(CVE-2026-78661),以及 raw text 渲染只看最近一层命名空间导致解析往返不一致(CVE-2026-97045)。附 go list -m / govulncheck 自查与升级命令。
Go
安全
html
依赖升级
TinyGo 0.44:interp 把 map lookup 和 memset 提前到编译期,启动路径再减一段
编程
TinyGo 0.44:interp 把 map lookup 和 memset 提前到编译期,启动路径再减一段
2026-10-31 21:07:17
TinyGo 0.44 把 map lookup、memset、接口哈希、私有原子与 deferred 初始化都挪到编译期求值,编译器跳过不可能的 slice 越界检查,RP2040/RP2350 的 PLL 计算移出启动。cores 调度器加了核心亲和性并把 ESP32-S3 拉进双核,还换了 LLVM 23 底座。文中列升级门槛与新增板子、驱动。
Go
TinyGo
嵌入式
WebAssembly
蓝牙
CVE-2026-98432 叠加 Go 1.24 的 MPTCP 默认:先打内核补丁,GODEBUG 只能当临时挡板
资讯
CVE-2026-98432 叠加 Go 1.24 的 MPTCP 默认:先打内核补丁,GODEBUG 只能当临时挡板
2026-10-31 21:02:20
Linux IPv4 的 use-after-free(CVE-2026-98432,CVSS 9.8)在 Anthropic 的利用里需要 MPTCP listener,而 Go 1.24 起 listener 默认就开 MPTCP。文中拆解释放时序、列出发行版修复版本,给出 ss -M / ip mptcp 自查、GODEBUG=multipathtcp=0 与 net.mptcp.enabled=0 两种临时挡板,以及为什么它们都不算完整修复。
Go
Linux
安全
内核
网络
Wails v3.0.0 发布:窗口和托盘变成显式对象,v2 项目要按新运行时重写
编程
Wails v3.0.0 发布:窗口和托盘变成显式对象,v2 项目要按新运行时重写
2026-10-31 21:01:13
Wails v3.0.0 于 2026-10-26 发布,把应用、窗口、服务、事件改成显式对象:多窗口与系统托盘进入模型,运行时 API 从全局函数改为对象方法,绑定重新生成。文中给出 v2→v3 启动代码对照、Windows 菜单栏与暗色模式崩溃修复、Linux 子 frame 消息拦截的已知限制,以及 nightly/weekly 发布节奏。
Go
Wails
桌面应用
WebView
版本升级
gopls v0.24.0 交互式重构:结构体标签、接口实现与跨文件移动都能先问再做
编程
gopls v0.24.0 交互式重构:结构体标签、接口实现与跨文件移动都能先问再做
2026-10-30 21:03:45
gopls 新增交互式重构:LSP 提案让语言服务器在计算编辑前先弹表单,结构体 tag 的组合与命名风格、要实现的接口、要移动的声明都可以自己填。记录 gopls v0.23.0/v0.24.0 与 vscode-go v0.56.0 的具体改动、代码前后对照,以及 Move Declaration、Change Signature 等仍未完成的部分。
Go
gopls
LSP
开发工具
Go 首次动用 URGENT track:7.5 小时内发版移除 eMudhra 中间证书信任
资讯
Go 首次动用 URGENT track:7.5 小时内发版移除 eMudhra 中间证书信任
2026-10-30 20:01:24
eMudhra 中间证书私钥可被微秒级恢复,Mozilla 先把 8 张证书加进 OneCRL。Go 团队 7.5 小时内发布 1.27.3 / 1.26.10,直接在标准库验证器里移除信任,这也是 Go 第一次启用 URGENT track。文内保留完整时间线、Linux 缺撤销机制的原因,以及 go version -m 与 govulncheck -mode=binary 的落地自查命令。
Go
安全发布
TLS
证书
运维
Idempotency-Key 的值不是存储主键:把键做成元组,三类跨租户事故就消失了
编程
Idempotency-Key 的值不是存储主键:把键做成元组,三类跨租户事故就消失了
2026-10-30 00:03:55
Idempotency-Key 落库时不能直接当主键:跨租户回放、支付与退款互撞、服务端自铸键被伪造值污染,三类事故都出在作用域。按 IETF draft-08 的边界,把存储键做成 (tenant, principal, route, namespace, key) 元组,讲清分隔符注入、fail-closed、分片路由与 v1 版本前缀的处理方式。
Idempotency-Key
幂等键
接口幂等
多租户
HTTP
API
Go
Go 1.28 提案:freegc、M-local storage、SIMD 与 Wasm 栈切换的进度
编程
Go 1.28 提案:freegc、M-local storage、SIMD 与 Wasm 栈切换的进度
2026-10-29 21:10:19
Go 1.28 的提案清单里,影响运行时的是编译器插入 runtime.free 的 freegc 实验(默认 16 字节阈值)和 sync 的 M-local 分片计数;另有 SIMD 的 archsimd 与可移植 simd 包进度、Wasm 栈切换只有约 20% 原生性能的现状。全部仍是提案。
Go
运行时
性能
大家都在搜索什么?
devops
易支付
一个官网+多少钱
统一接受回调
统一回调
python
sub
node
宝塔日志
mysql
shell
ElasticSearch
css
vue
api接口对接
2025
支付接口对接
go
php
php回调
上一页
1
2
3
4
5
6
7
…
23
下一页
共 23 页
到第
页
确定