日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

深入理解Go標(biāo)準(zhǔn)庫-http server的優(yōu)雅關(guān)閉

來源: 責(zé)編: 時間:2023-12-04 09:20:05 293觀看
導(dǎo)讀還記得怎么啟動一個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么?7fo28資訊網(wǎng)——每日最新資訊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呢?7fo28資訊網(wǎng)——每日最新資訊28at.com

CTRL+C是結(jié)束一個進程常用的方式,它和kill pid或者kill -l 15 pid命令本質(zhì)上沒有任何區(qū)別,他們都是向進程發(fā)送了SIGTERM信號。因為程序沒有設(shè)置對SIGTERM信號的處理程序,所以系統(tǒng)默認的信號處理程序結(jié)束了我們的進程7fo28資訊網(wǎng)——每日最新資訊28at.com

這會帶來什么問題?7fo28資訊網(wǎng)——每日最新資訊28at.com

在服務(wù)器的進程被殺死時,我們的服務(wù)器可能正在處理請求并未完成。因此對于客戶端產(chǎn)生了一個預(yù)期外的錯誤7fo28資訊網(wǎng)——每日最新資訊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會產(chǎn)生502的響應(yīng)7fo28資訊網(wǎng)——每日最新資訊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"

優(yōu)雅關(guān)閉的初步實現(xiàn)

優(yōu)雅關(guān)閉(graceful shutdown)指的是我們的HTTP Server關(guān)閉前既拒絕新來的請求,又正確的處理完正在進行中的請求,隨后進程退出。如何實現(xiàn)?7fo28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-37244-0.html深入理解Go標(biāo)準(zhǔn)庫-http server的優(yōu)雅關(guān)閉

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 使用Ruff改善Python編程風(fēng)格

下一篇: Tomcat 配合虛擬線程,一種新的編程體驗

標(biāo)簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 林甸县| 奈曼旗| 肃宁县| 平顶山市| 阜阳市| 临邑县| 洪湖市| 宜黄县| 兴国县| 利辛县| 胶南市| 德庆县| 江山市| 大余县| 鸡东县| 拉萨市| 安丘市| 方城县| 郸城县| 湖南省| 延吉市| 襄樊市| 益阳市| 柳江县| 永定县| 方山县| 桓仁| 屏边| 隆回县| 达州市| 晋宁县| 广州市| 友谊县| 锡林郭勒盟| 家居| 固安县| 巢湖市| 麻江县| 定西市| 尚义县| 浙江省|