我使用gin构建一个简单的api服务器。现在,几分钟后服务器启动后,所有传入的请求都被卡住了。检查连接状态后,我收到如下消息:
我已经尝试设置c.Request.Close = true或c.Header(" Connection"," close")或两者都有,但它无效。我想知道是否有人可以帮我解决这个问题。
UPDATE-1 启动服务器的方式
runtime.GOMAXPROCS(runtime.NumCPU())
//start serving
r := gin.New()
r.Use(gin.LoggerWithWriter(logFile))
r.Use(gin.RecoveryWithWriter(logFile))
r.Use(handler.SetResponseHeader())
controller.Router.RegisterRouter(r, cfg)
//r.Run(cfg.SvcHost)
s := &http.Server{
Addr: cfg.SvcHost,
Handler: r,
}
s.ListenAndServe()
UPDATE-2
暂时禁用全局gorm.DB实例并为每个请求创建新的数据库连接后,此问题不再发生。
答案 0 :(得分:1)
TCP正在等待您关闭这些连接。可能你已经从他们那里读到了流的结尾而忽略了它。