Go教程技术文章
-
Go可用etcd快速实现分布式配置中心:首选etcd因支持watch长连接、租约与MVCC;需用clientv3、设DialTimeout、独立goroutine监听、WithPrefix+WithPrevKV批量拉取与精准更新、sync.RWMutex保护本地缓存,并提供阻塞初始化与无感Get接口。218 收藏 -
围绕 Go 1.24 map Swiss Tables 新实现,讲清控制字节、开放寻址、缓存局部性、内存占用、删除场景和线上基准验证方法。218 收藏 -
Golang · Go教程 | 1个月前 | Context · 超时控制 · Go教程 · http.Client · Transport · Go context 请求超时 Transport http.Client Client.Timeout ResponseHeaderTimeout
Go HTTP 客户端超时不要只靠一个 context 或一个 Client.Timeout。更稳的做法是把总预算、连接、TLS 握手、响应头和读取阶段分开设置,再用错误判断和日志字段确认到底卡在哪一段。218 收藏 -
runtime.Stack是目前唯一合法获取goroutineID的方式,通过解析panic日志首行"goroutineN[state]:"提取数字,需注意缓冲区大小、正则匹配、禁用all=true等细节。217 收藏 -
goget在Go1.18+默认不修改go.mod,仅当在含有效go.mod的模块根目录运行时才更新依赖;安装工具应优先用goinstall;指定版本需用@vX.Y.Z格式,私有库需配置GOPRIVATE。217 收藏 -
Go 项目日志从 fmt.Println 迁到 slog,不只是换一个打印函数。本文用接口调用链场景讲清 slog 字段设计、上下文传递、Handler 选择、敏感字段处理和灰度接入路径。217 收藏 -
Go实现事件驱动微服务架构的核心是通过Kafka/NATS/RabbitMQ等消息总线解耦服务:统一连接管理、结构化版本化事件模型、异步幂等发布与消费,并以订单场景为例体现高扩展性与容错性。216 收藏 -
不能直接用sync.Map做LRU,因其无访问序、不支持O(1)节点移动,且超限淘汰需遍历,高并发下性能差;正确做法是用sync.RWMutex保护的map+container/list组合,以map长度为淘汰依据,并配onEvict回调释放大对象资源。216 收藏 -
使用goget升级依赖并用gomodtidy整理,可高效管理Go项目依赖。先用golist-m查看当前版本,再通过goget指定包升级至最新或特定版本,如@latest或@patch;执行goget-u更新所有依赖,配合-u=patch仅升补丁版;最后运行gomodtidy清理冗余依赖并用gotest验证兼容性,确保升级安全稳定。216 收藏 -
Golang · Go教程 | 6天前 | 标准库 · go · csv · 数据导入 · 错误定位 · CSV导入 encoding/csv Go教程 FieldsPerRecord LazyQuotes
Go 标准库 encoding/csv 默认会用首条记录推断字段数,遇到不齐列或引号不规范的文件就可能在中途报错。本文用导入小工具拆开 FieldsPerRecord、LazyQuotes、ParseError 和逐行处理边界。216 收藏 -
GM模型撑不住多核,因其依赖单一全局队列导致锁竞争严重、系统调用阻塞整个M、无本地缓存与负载不均;GMP通过引入P实现本地队列、工作窃取和M-P解耦,显著提升多核利用率。215 收藏 -
Go处理大规模并发IO等待的关键是用SetReadDeadline控制底层socket超时、context.Context协调整体生命周期、避免goroutine泄漏;HTTP中http.Server.ReadTimeout不覆盖body阶段,而SetReadDeadline直接作用于net.Conn的Read()调用,更底层有效。215 收藏 -
Elem()必须用于Kind为reflect.Ptr的指针类型reflect.Value,否则panic;正确用法是reflect.ValueOf(&v).Elem()以获得可修改值,而非reflect.ValueOf(v).Elem()。215 收藏 -
不能直接用rate.NewLimiter做三维度限流,因其无key概念,所有请求共享同一令牌桶;必须为每个IP+用户ID+接口路径组合创建独立limiter实例,并用sync.Map安全存取、定时清理过期项。215 收藏 -
Go语言reflect包本身不提供并发安全保证,修改数组元素是否线程安全取决于是否对底层数据加同步控制;必须由开发者显式使用锁、原子操作等机制保障并发安全。214 收藏