新手问题,如何解决用gin做的api接口经常无响应?

biolt · · 9064 次点击
首先应该不是拒绝服务攻击,因为从图中看是客户端可以顺利建立连接,并且是主动断开连接。 一般还是怀疑服务端超时,我在 handler 中 sleep 一段时间就可以复现你描述的情况 ```go e.GET("/", func(c *gin.Context) { time.Sleep(time.Minute) }) ``` ![屏幕截图 2023-01-28 214931.png](https://static.golangjob.cn/230128/2be171b55c067b4d9f07b6f14dda14e5.png) 至于你设置的 gin read timeout 和 write timeout 对业务逻辑应该是无效的。 具体故障原因,看下来,还是数据库方面问题可能性大一点,虽然排除了死锁问题,但是可能存在连接池泄露导致长时间无法获取连接的问题,可以观察一下问题出现时数据库的非活跃连接数量。
#13
更多评论
tuzhiya
你好
recovery中间件加上没有
#2