go 服务挂掉,怎么解决

使用gin开发,如果出现异常,服务就会挂掉,不知道为什么?

给我的感觉是,go语言如果遇到异常,就会挂掉,是这样的吗?

代码:https://github.com/fengwenyi/...

阅读 7.9k
4 个回答

你这种问题不是因为panic 引发的,因为你的代码倒数第二行增加了 log.Fatal(response.Message)。而log.Fatal 是

std.Output(2, fmt.Sprint(v...))
    os.Exit(1)

所以你的代码肯定会被执行os.EXIT 你的服务就自动退出了。

所以你捕获异常了吗?

不捕获的话就会一致向上抛啊。

你要捕获处理啊.不然就挂了.

使用 gin框架,启用 gin.Recover 中间件

部署项目使用 systemd 或者 supervisor,并开起自动重启功能,已保证崩溃后可以立刻起来继续提供服务

另外,你可以把你的挂掉时输出的日志,以及日志相关的代码脱敏后贴上来看看.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题