golang
已收录文章:652篇
-
命令模式结合队列可实现任务调度解耦,Golang通过接口封装命令、通道传递任务,协程异步执行,提升系统扩展性与可控性。221 收藏
-
Go语言中encoding/csv包用于读写CSV文件,支持写入多行数据、处理特殊字符、自定义分隔符及从结构体切片生成CSV。1.创建文件并使用csv.NewWriter写入表头和记录;2.Write和WriteAll方法自动处理含逗号、引号的字段;3.设置Comma字段可改为制表符分隔(TSV);4.结构体需手动转为字符串切片写入;5.必须调用Flush确保数据落盘。标准库适用于大多数场景,复杂需求可用第三方库增强。220 收藏
-
限流与熔断是保障云原生微服务稳定性的关键机制。Golang通过rate.Limiter实现令牌桶限流,控制请求速率;结合sony/gobreaker库实现熔断,避免因下游故障引发雪崩。二者协同可在网关层做全局限流,在服务调用侧设置熔断策略,配合监控与配置中心提升系统弹性。实际应用中还可借助Istio等服务网格降低侵入性,构建高可用架构。220 收藏
-
答案:Golang通过os.ReadFile和os.WriteFile实现文件内容替换,结合regexp进行正则匹配与替换,适用于配置更新等场景;对大文件使用bufio.Scanner逐行处理,避免内存溢出,通过临时文件写入并原子替换保证数据安全;常见应用包括替换IP、清除注释、修改键值对及分组重构,整体简洁高效。219 收藏
-
答案:基于AES-256-CBC模式使用crypto/aes和crypto/cipher库实现文件加解密,需生成随机IV并采用PKCS7填充,加密时将IV写入文件头,解密时先读取IV并用相同密钥解密,注意密钥安全与IV唯一性。218 收藏
-
sync.Map适用于并发读多写少场景,提供Store、Load、LoadOrStore、Delete和Range方法,避免了传统map的竞态问题,常用于缓存、配置管理及用户状态跟踪,但不支持原子复合操作与一致性遍历快照,需结合类型断言安全使用。218 收藏