当前位置:首页 > 科技  > 软件

深入理解Go标准库-http server的优雅关闭

来源: 责编: 时间:2023-12-04 09:20:05 359观看
导读还记得怎么启动一个HTTP Server么?package mainimport ( "net" "net/http")func main() { // 方式1 err := http.ListenAndServe(":8080", nil) if err != nil { panic(err) } // 方式2 // server := &http.Serv

还记得怎么启动一个HTTP Server么?7XX28资讯网——每日最新资讯28at.com

package mainimport ( "net" "net/http")func main() { // 方式1 err := http.ListenAndServe(":8080", nil) if err != nil {   panic(err) }     // 方式2 // server := &http.Server{Addr: ":8080"} // err := server.ListenAndServe() // if err != nil { //  panic(err) // }}

ListenAndServe在不出错的情况下,会一直阻塞在这个位置,如何停止这样的一个HTTP Server呢?7XX28资讯网——每日最新资讯28at.com

CTRL+C是结束一个进程常用的方式,它和kill pid或者kill -l 15 pid命令本质上没有任何区别,他们都是向进程发送了SIGTERM信号。因为程序没有设置对SIGTERM信号的处理程序,所以系统默认的信号处理程序结束了我们的进程7XX28资讯网——每日最新资讯28at.com

这会带来什么问题?7XX28资讯网——每日最新资讯28at.com

在服务器的进程被杀死时,我们的服务器可能正在处理请求并未完成。因此对于客户端产生了一个预期外的错误7XX28资讯网——每日最新资讯28at.com

curl -v --max-time 4 127.0.0.1:8009/foo* Connection #0 to host 127.0.0.1 left intact*   Trying 127.0.0.1:8009...* Connected to 127.0.0.1 (127.0.0.1) port 8009 (#0)> GET /foo HTTP/1.1> Host: 127.0.0.1:8009> User-Agent: curl/7.86.0> Accept: */*> * Empty reply from server* Closing connection 0curl: (52) Empty reply from server

如果有nginx代理,因为upstream的中断,nginx会产生502的响应7XX28资讯网——每日最新资讯28at.com

curl -v --max-time 11 127.0.0.1:8010/foo*   Trying 127.0.0.1:8010...* Connected to 127.0.0.1 (127.0.0.1) port 8010 (#0)> GET /foo HTTP/1.1> Host: 127.0.0.1:8010> User-Agent: curl/7.86.0> Accept: */*> * Mark bundle as not supporting multiuse< HTTP/1.1 502 Bad Gateway< Server: nginx/1.25.3< Date: Sat, 02 Dec 2023 10:14:33 GMT< Content-Type: text/html< Content-Length: 497< Connection: keep-alive< ETag: "6537cac7-1f1"

优雅关闭的初步实现

优雅关闭(graceful shutdown)指的是我们的HTTP Server关闭前既拒绝新来的请求,又正确的处理完正在进行中的请求,随后进程退出。如何实现?7XX28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-37244-0.html深入理解Go标准库-http server的优雅关闭

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 使用Ruff改善Python编程风格

下一篇: Tomcat 配合虚拟线程,一种新的编程体验

标签:
  • 热门焦点
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • 得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 三言两语说透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是两种很有用的技术,可以帮助我们写出更加优雅、泛用的函数。本文将首先介绍柯里化和反柯里化的概念、实现原理和应用
  • 微信语音大揭秘:为什么禁止转发?

    大家好,我是你们的小米。今天,我要和大家聊一个有趣的话题:为什么微信语音不可以转发?这是一个我们经常在日常使用中遇到的问题,也是一个让很多人好奇的问题。让我们一起来揭开这
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 造车两年股价跌六成,小米的估值逻辑变了吗?

    如果从小米官宣造车后的首个交易日起持有小米集团的股票,那么截至2023年上半年最后一个交易日,投资者将浮亏59.16%,同区间的恒生科技指数跌幅为52.78%
  • iQOO 11S屏幕细节公布:首发三星2K E6全感屏 安卓最好的直屏手机

    日前iQOO手机官方宣布,新一代电竞旗舰iQOO 11S将会在7月4日19:00正式与大家见面。随着发布时间的日益临近,官方关于该机的预热也更加密集,截至目前已
  • 联想YOGA 16s 2022笔记本将要推出,屏幕支持触控功能

    联想此前宣布,将于11月2日19:30召开联想秋季轻薄新品发布会,推出联想 YOGA 16s 2022 笔记本等新品。官方称,YOGA 16s 2022 笔记本将搭载 16 英寸屏幕,并且是一
Top