golang
已收录文章:14425篇
-
golang的defer 什么是defer defer的的官方文档:https://golang.org/ref/spec#Defer_statements go语言中defer可以完成延迟功能,当前函数执行完成后再执行defer的代码块。通过defer,我们可以在代码中优雅的关闭/清366 收藏
-
配置Golang私有仓库的核心是设置GOPRIVATE环境变量,例如goenv-wGOPRIVATE=git.mycompany.com/*,my.private.module,使Go工具链绕过公共代理和校验,直接通过VCS拉取私有模块;同时应设置GONOSUMDB避免校验和错误,确保私有模块顺利获取。365 收藏
-
Golang的select语句用于协调多个channel通信,能同时监听多个channel并处理就绪事件,结合goroutine可高效处理并发任务。示例中通过select监听网络事件和超时,避免阻塞;使用defaultcase可防止死锁,但需注意CPU占用;通过time.After实现超时控制;还可应用于多channel关闭检测、任务调度等并发场景。365 收藏
-
使用strings.Builder可高效拼接字符串,避免+操作符导致的频繁内存分配。它通过可变缓冲区累积内容,支持WriteString、WriteByte等方法,最后调用String()获取结果,性能优于O(n²)的+拼接,适用于日志、HTTP响应等场景。365 收藏
-
金丝雀发布可通过流量切分和监控逐步上线Golang服务。1.流量切分常用反向代理(如Nginx、Envoy)按权重分配流量,也可使用服务网格(如Istio)、代码控制或DNS权重;2.监控需关注错误率、延迟、资源利用率及业务指标,常用Prometheus+Grafana、ELK或APM工具;3.回滚应尽量自动化,逐步切换流量并处理数据库迁移与配置恢复;4.数据库Schema变更需兼容设计、灰度升级、双写机制配合FeatureFlags与迁移工具;5.策略选择基于用户、地理位置、流量比例、时间或蓝绿部署;6365 收藏
-
构建无状态微服务时,Session管理可通过JWT、Redis和统一认证中心实现。①使用JWT作为Token,客户端存储,服务端无状态;②结合Redis记录Session元数据,支持主动失效;③设立统一认证中心,中间件校验Token;④确保HTTPS传输安全并设计Token刷新机制。365 收藏