我们编写的Web项目部署之后,经常会因为需要进行配置变更或功能迭代而重启服务,单纯的kill -9 pid的方式会强制关闭进程,这样就会导致服务端当前正在处理的请求失败,那有没有更优雅的方式来实现关机或重启呢?
gin 是目前 Go 里面使用最广泛的框架之一了,弄清楚 gin 框架的原理,有助于我们更好的使用 gin。《gin 源码阅读 - http请求是如何流入gin的?》第二篇说到 net/http 非常重要的函数 ServeHTTP,当 server 收到请求时,必然会走到这个函数里。
Gin 采用httprouter,因此运行速度更快,官方声称比 Martini 快 40 倍,与其他 Golang 框架相比Gin 的性能也更好,Gin 的路由分组功能可以让 Gin 中的路由分组中在不影响性能的情况下无限嵌套。