Nacos服務(wù)實(shí)例的權(quán)重設(shè)置方式(以及設(shè)置為0時(shí)的作用與場(chǎng)景)
先分析為何要用權(quán)重設(shè)置
Nacos有同集群優(yōu)先訪問的負(fù)載均衡,不過呢,我們部署的時(shí)候啊,可能會(huì)存在這么一種情況,因?yàn)槠髽I(yè)里服務(wù)器設(shè)備啊,會(huì)更新迭代,有一些機(jī)器呢,性能比較好,還有一些屬于是祖?zhèn)髟O(shè)備了,性能非常的差,可以說是老弱病殘,這個(gè)時(shí)候呢,我們肯定是希望這些性能好的機(jī)器,它承擔(dān)更多的用戶請(qǐng)求,而那些性能差一點(diǎn)的,自然是承擔(dān)少一點(diǎn)的請(qǐng)求,正所謂能者多勞嘛。
但是我們目前看來,NacosRule做到的是集群優(yōu)先,而后做隨機(jī),當(dāng)用戶請(qǐng)求來了以后,它可不管你是性格好的還是差,這個(gè)身強(qiáng)力壯的還是老弱病殘拉過來就一頓造,那這個(gè)時(shí)候那些性能差的肯定就會(huì)出問題。
那么我們?cè)撛鯓尤タ刂撇煌?wù)它的一個(gè)請(qǐng)求量呢?
哎,Nacos,給我們提供了一個(gè)權(quán)重的配置,通過修改服務(wù)實(shí)力的權(quán)重,可以控制訪問頻率,權(quán)重越大,訪問到的頻率就越高,那我們就可以把性能好的機(jī)器全都設(shè)得大一點(diǎn),性能差一些呢,設(shè)置的小一點(diǎn)。

權(quán)重設(shè)置為0時(shí),該實(shí)例就不會(huì)被訪問了,也就是說權(quán)重調(diào)整0時(shí),它壓根兒就不會(huì)被訪問。
設(shè)置權(quán)重為0有什么作用?
我們以前一個(gè)服務(wù),我們想要對(duì)它做一個(gè)版本的升級(jí),我們?cè)撛趺崔k?
我們是不是要把它重啟啊,但是你光天化日之下,你去重啟個(gè)服務(wù)器,是不好的,因?yàn)橛脩舳歼€在訪問,你一重啟別人就反應(yīng)不了“哎,你這服務(wù)怎么掛了?”,就有問題了!對(duì)不對(duì),所以說呢,我們是不能隨便重啟的。
往往呀,每次版本升級(jí)都是搞得跟那個(gè)什么諜戰(zhàn)片一樣,要找一個(gè)月黑風(fēng)高無人之夜是吧,然后等用戶都下線兒了,我們偷偷的把服務(wù)停機(jī),然后呢,去做版本的一個(gè)升級(jí)。
但是你想看,如果現(xiàn)在有了這個(gè)權(quán)重,我可不可以這么做?我有多個(gè)服務(wù)器,8081、8082、8083各自部署,我先將8081這個(gè)服務(wù)的權(quán)重調(diào)成零。
然后呢,大白天也沒事兒啊,這個(gè)時(shí)候呢,漸漸的8081就不承擔(dān)用戶請(qǐng)求了,那這個(gè)時(shí)候我對(duì)它做停機(jī),用戶就不會(huì)有感知了,那么這個(gè)時(shí)候?qū)?081停機(jī)完了以后,就可以去做一些這個(gè)版本的升級(jí),升級(jí)完成以后我再重啟,我給它權(quán)重先不著急調(diào)太大,先調(diào)小一點(diǎn),調(diào)到零點(diǎn)多,0.01什么之類的,這個(gè)時(shí)候呢,我們放出少數(shù)用戶進(jìn)來做個(gè)測(cè)試,看看行不行,如果沒什么問題,我們就可以逐漸擴(kuò)大比例,一次升級(jí),這個(gè)時(shí)候用戶是無感知的,你可以做到平滑升級(jí)。
非常優(yōu)雅,那么這樣呢,這種升級(jí)方式啊,其實(shí)就是比較比較順滑這種方式了,你就不用去大半夜去加班的去搞了。所以呢,這是我們這個(gè)權(quán)重的一些作用。

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
在IntelliJ IDEA中多線程并發(fā)代碼的調(diào)試方法詳解
這篇文章主要介紹了在IntelliJ IDEA中多線程并發(fā)代碼的調(diào)試方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
java如何動(dòng)態(tài)執(zhí)行while循環(huán)
這篇文章主要介紹了java如何動(dòng)態(tài)執(zhí)行while循環(huán)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
SpringBoot Web開發(fā)中的異常處理自動(dòng)配置原理解析
本文給大家介紹SpringBoot Web開發(fā)中的異常處理自動(dòng)配置原理解析,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2025-10-10
Springboot項(xiàng)目中實(shí)現(xiàn)微信小程序登錄案例(最新推薦)
文章介紹了如何通過微信開放平臺(tái)的授權(quán)登錄功能實(shí)現(xiàn)Spring Boot項(xiàng)目與微信小程序的微信登錄,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-02-02
SpringBoot 返回Json實(shí)體類屬性大小寫的解決
這篇文章主要介紹了SpringBoot 返回Json實(shí)體類屬性大小寫的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
java 隨機(jī)生成6位短信驗(yàn)證碼實(shí)例代碼
這篇文章主要介紹了java 隨機(jī)生成6位短信驗(yàn)證碼的實(shí)例代碼,文中給大家擴(kuò)展介紹了java隨機(jī)生成四位數(shù)字驗(yàn)證碼的方法,需要的朋友可以參考下2019-12-12
Java數(shù)組模擬優(yōu)先級(jí)隊(duì)列數(shù)據(jù)結(jié)構(gòu)的實(shí)例
這篇文章主要介紹了Java數(shù)組模擬優(yōu)先級(jí)隊(duì)列數(shù)據(jù)結(jié)構(gòu)的實(shí)例,優(yōu)先級(jí)隊(duì)列中的元素會(huì)被設(shè)置優(yōu)先權(quán),本文的例子借助了Java中的TreeSet和TreeMap,需要的朋友可以參考下2016-04-04
Java 線程的優(yōu)先級(jí)(setPriority)案例詳解
這篇文章主要介紹了Java 線程的優(yōu)先級(jí)(setPriority)案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08

