国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

node.js - web項目升級怎么樣避免用戶請求無響應(yīng)

瀏覽:127日期:2023-10-04 08:33:02

問題描述

比如有5臺服務(wù)器跑了5個node項目,然后前面使用nginx做負(fù)載均衡

比如項目訪問量很大,然后增加了一些新的功能,項目需要升級 5臺服務(wù)器逐個升級,怎么能保證在升級的過程中不會影響訪問

例如 現(xiàn)在要升級A服務(wù)器上的node項目,但是A服務(wù)器上有許多請求 如果直接升級的話,請求可能就會沒有響應(yīng),如果項目涉及到對數(shù)據(jù)庫操作,可能會產(chǎn)生臟數(shù)據(jù)

我能想到的一種方案是 事先發(fā)公告 沒有流量的時候再升級

我想請問還沒有其它方案,在不影響用戶請求的情況下對服務(wù)進(jìn)行升級呢

問題解答

回答1:

只是無響應(yīng) (我猜是tcp連接中斷) 比較簡單,nginx切換配置時可以graceful restart的,這樣可以撤掉一臺后端--升級后端--加回去。

但是'不影響訪問' 不止要解決這個,你還需要讓舊版本的前端和新版本的服務(wù)器可以共用。

臟數(shù)據(jù)是另一個問題了。不應(yīng)該期待每個請求都正常結(jié)束,清理臟數(shù)據(jù) (現(xiàn)場或事后) 的機制總歸是應(yīng)該有的。

回答2:

當(dāng)你的服務(wù)器支持平滑重啟,這就比較方便了。平滑重啟可能是你自己實現(xiàn)的,也可能是框架或者庫提供的。

回答3:

你這么想本來就是錯的,除非你5臺機器上部署的是不同的項目,那么升級只能停機,不然還能怎么辦你說。你這個意思是5臺機器上部署同一個項目,那么升級的時候你考慮怎么能不影響服務(wù),你的出發(fā)點應(yīng)該在這兒,那這里就有一個問題,對于一個請求你是怎么做分發(fā)到5臺機器上的,你怎么做的然后就在哪里調(diào)整就是了,在低谷的時候把5臺改成4臺,然后升級成功之后再加回去,如果擔(dān)心升級過程中響應(yīng)不過來,那么就調(diào)整緩存時間,都5臺機器了,不會沒緩存把。。。

回答4:

升級一般都是凌晨升級,因為如果出了什么問題,都不會影響那么大

回答5:

負(fù)責(zé)均衡下掉一臺服務(wù)器,升級,然后再up

回答6:

完全不影響是不可能,只有盡可能的讓影響看不出來,你觀察一下京東就會發(fā)現(xiàn),它家的服務(wù)器經(jīng)常凌晨升級,升級的時候你打開它的菜單是刷不出東西來的,就看不停的轉(zhuǎn)圈,但是就是不出內(nèi)容。所以基本都是升級的時候把服務(wù)器切換到友好的不出內(nèi)容界面,升級完再換回來。

回答7:

逐臺升級,升級過程中把流量引導(dǎo)其他服務(wù)器

回答8:

我們項目是用pm2發(fā)布和做進(jìn)程管理的

發(fā)布的時候不會影響用戶是用

回答9:

熱部署

灰度發(fā)布

標(biāo)簽: web
相關(guān)文章:
主站蜘蛛池模板: 小金县| 张掖市| 正阳县| 武宁县| 永川市| 马尔康县| 马边| 蓬莱市| 峡江县| 二手房| 许昌市| 乐至县| 博罗县| 邻水| 民勤县| 若羌县| 新巴尔虎右旗| 石河子市| 弥勒县| 榆林市| 贵港市| 忻城县| 南投县| 延川县| 东方市| 中宁县| 邹城市| 重庆市| 汉川市| 马边| 西盟| 天全县| 和平区| 佛冈县| 东安县| 嘉祥县| 固始县| 南溪县| 龙江县| 陆河县| 南开区|