RSS
菜单
社区成员个人主页
阿成员
DEV CN / 成员主页

阿青 · 社区话题账号

查看阿青 · 社区话题账号发布的技术文章、关注圈子与公开讨论。

0技术文章4关注圈子467圈内发布1关注者
COMMUNITY POSTS

交流圈发布内容

作者在不同技术圈子中的观点与讨论

2
# Golang

Go 数据库连接池配置:MaxOpenConns 等参数怎么设

Go 标准库 database/sql 自带连接池:sql.DB 通过 SetMaxOpenConns(最大打开连接数)、SetMaxIdleConns(最大空闲数)、SetConnMaxLifetime(连接最大存活时间,建议 < 数据库超时)、SetConnMaxIdleTime(空闲超时回收)。配置原则:① MaxOpenConns 根据并发和数据库能力(避免连接风暴);② ConnMaxLifetime 防 MySQL wait…

3
# Golang

Go GORM 实战:CRUD、关联预加载、事务与常见坑

GORM 是 Go 最流行的 ORM:模型映射(struct tag gorm:"column:name")、自动迁移 AutoMigrate、CRUD(First/Find/Create/Updates/Delete)、条件(Where/Not/Or)、链式查询(支持 scopes 复用)、预加载(Preload 处理关联)、事务(Transaction 自动回滚)、钩子(BeforeCreate 等)。注意事项:① 默认查询零值条件…

4
# Golang

Go 高并发 HTTP 服务优化:超时、连接池、限流与压测

服务端:① http.Server 设置 ReadTimeout/WriteTimeout/IdleTimeout(防慢连接占资源)、MaxHeaderBytes;② 中间件控制:限流(令牌桶)、超时(context);③ 连接池:客户端复用 http.Client、Transport 配 MaxIdleConns/MaxIdleConnsPerHost;④ 并发模型:goroutine 天然并发,注意下游并发控制(信号量)防雪崩;⑤…

5
# Golang

Go gRPC 入门:protobuf 定义、四种调用模式与拦截器

gRPC 高性能 RPC 框架:protobuf 定义服务(.proto:service + message),protoc 生成代码(protoc-gen-go、protoc-gen-go-grpc)。核心:四种调用模式(一元、服务端流、客户端流、双向流);基于 HTTP/2(多路复用、二进制);强类型、跨语言;内置拦截器(鉴权、日志、限流)、元数据(metadata)、错误码。生态:grpc-gateway(REST 转 gRPC)…

6
# Golang

Go WebSocket 实战:gorilla/websocket 连接管理、心跳与并发写

WebSocket 提供浏览器/客户端与服务器全双工实时通信。Go 库:gorilla/websocket(最流行)、nhooyr.io/websocket(现代)。流程:HTTP 升级(Upgrade)→ 双向消息(TextMessage/BinaryMessage)→ 断开重连。要点:① 心跳保活(ping/pong,超时断开);② 并发写保护(同一连接同一时刻只允许一个 goroutine 写,用写锁或单写循环);③ 消息大小限制…

7
# Golang

Go HTTP 中间件怎么实现?标准库与 Gin 两种写法

中间件 = 包装 Handler 的函数:func Middleware(next http.Handler) http.Handler,在请求前后执行逻辑(日志、鉴权、限流、恢复)。标准库链式组合:handler = A(B(final))。Gin 中间件:func(c *gin.Context) { 前处理; c.Next(); 后处理 },c.Abort() 中断、c.Set/Get 传值。典型:RequestID 生成、pani…

8
# Golang

RESTful API 设计规范:路由、状态码、分页与错误处理

资源化路由:名词复数(/api/v1/users),HTTP 方法语义(GET 查、POST 建、PUT 全量改、PATCH 部分改、DELETE 删);状态码:200/201/204、400(参数错)、401(未认证)、403(无权限)、404、409(冲突)、500。统一响应结构:{code, message, data} 或直接 REST 资源 + 错误 JSON。最佳实践:版本化 /api/v1、分页(page/page_siz…

10
# Golang

Go 配置管理方案:viper、环境变量与 12-factor 最佳实践

环境变量:os.Getenv(K8s/Docker 优先,12-factor),注意默认值。配置文件:viper(支持 yaml/json/toml/env、热加载、远程配置(etcd/consul))最常用;轻量 gopkg.in/yaml.v3 直接解析。优先级链:默认值 < 配置文件 < 环境变量 < flag。最佳实践:定义 Config struct 集中管理、启动时校验必填项、敏感配置(密码/key)走环境变量或密钥管理(V…