golang
已收录文章:264篇
-
Go无法真正零停机,必须通过net.Listener.File()导出fd、子进程用net.FileListener恢复、父进程Shutdown等待旧连接结束三者协同;直接ListenAndServe必因端口占用或SO_REUSEPORT调度不均导致connectionrefused或RST。403 收藏
-
中间件必须返回http.Handler,而非直接调用next.ServeHTTP();正确做法是用闭包捕获next并转为http.HandlerFunc,以支持链式挂载、复用及兼容主流路由器。242 收藏
-
裸调用nats.Connect易因网络抖动断连不恢复,需显式配置重连策略(MaxReconnects、ReconnectWait、ReconnectJitter)、TLS前缀、凭证分离,并初始化JetStream上下文;消息持久化须服务端启用JetStream、客户端创建流、订阅启用Durable与DeliverAll。165 收藏
-
-ldflags-X能注入变量值,是因为Go链接器在链接阶段可覆盖顶层导出的字符串等基础类型变量的字面量初始值;变量必须是包级、首字母大写、类型匹配,且-Ximportpath.name=value中路径须与实际导入路径完全一致。420 收藏
-
必须先查本地缓存(L1)再查Redis(L2),否则L1失效、网络压力激增;典型路径为l1.Load→命中返回,未命中则redis.Get→命中后反序列化并l1.Store;L1TTL须≤L2TTL以避免脏数据。151 收藏
-
Go实现SSE推送核心是设对响应头、每次写完立刻flush、禁用超时;漏任一环节,EventSource即卡在connecting状态。199 收藏