注冊中心 Nacos(負(fù)載均衡歇攻、雪崩保護(hù)簡單體驗(yàn))

一、Nacos負(fù)載均衡體驗(yàn)

  • 注冊中心Nacos(單機(jī)部署)中梆造,由于使用的Nacos版本是2.2.1所以手動(dòng)引入了loadbalancerspringcloud組件用于服務(wù)調(diào)用方解析服務(wù)名正確調(diào)用對應(yīng)服務(wù)缴守。本次學(xué)習(xí)就以loadbalancer默認(rèn)使用的輪詢負(fù)載均衡策略來進(jìn)行初步體驗(yàn)。
    關(guān)于SpringCloudAlibaba官網(wǎng)維護(hù)的Ribbon負(fù)載均衡器后面結(jié)合自定義負(fù)載均衡策略再學(xué)
<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
  • 為了直觀的觀察負(fù)載均衡的效果,我們需要在原來的訂單-庫存案例中添加多個(gè)庫存服務(wù)供訂單服務(wù)調(diào)用屡穗,利用IDEA編輯器贴捡,我們無需復(fù)制多個(gè)訂單模塊修改端口啟動(dòng),以下是用同一份代碼村砂,在多個(gè)端口上運(yùn)行庫存服務(wù)的步驟:
  1. 復(fù)制庫存服務(wù)運(yùn)行配置


    復(fù)制庫存服務(wù)運(yùn)行配置
  2. 修改配置名稱栈暇,同時(shí)新版本IDEA針對springboot項(xiàng)目覆蓋端口配置需要勾選Modify options中的Override configuration properties
    修改配置名

    勾選覆蓋springboot配置參數(shù)選項(xiàng)
  3. 覆蓋springbootyml文件中的端口配置
    覆蓋端口配置
  4. 啟動(dòng)新的庫存服務(wù)


    新的庫存服務(wù)

    5.觀察Nacos控制臺,庫存服務(wù)實(shí)例及健康實(shí)例數(shù)據(jù)都得到了更新


    Nacos控制臺服務(wù)列表
  • 修改庫存服務(wù)代碼箍镜,增加端口輸出,便于識別訂單服務(wù)調(diào)用的是哪一個(gè)庫存服務(wù)
@RestController
@RequestMapping("/stock")
public class StockController {

    @Value("${server.port}")
    private String port;

    @RequestMapping("/reduct")
    public String reduct() throws InterruptedException {
        System.out.println("扣減庫存");
        return "扣減庫存:"+port;
    }
}
  • 觀察負(fù)載均衡效果煎源,這里借助壓測工具JMeter進(jìn)行服務(wù)調(diào)用色迂,同時(shí)觀察庫存服務(wù)調(diào)用情況
  1. 設(shè)置線程組,1秒鐘創(chuàng)建10個(gè)線程訪問循環(huán)1次


    JMeter線程組設(shè)置
  2. 設(shè)置HTTP本地訂單服務(wù)請求


    HTTP請求配置
  3. 觀察結(jié)果樹手销,發(fā)現(xiàn)10次請求對庫存服務(wù)是進(jìn)行輪流訪問


    結(jié)果樹

    結(jié)果樹

二歇僧、Nacos雪崩保護(hù)體驗(yàn)

  • 觀察服務(wù)詳情


    Nacos服務(wù)列表
服務(wù)詳情

基于上面已經(jīng)有的兩個(gè)庫存服務(wù)實(shí)例,那什么是服務(wù)雪崩呢锋拖?
服務(wù)雪崩也就是假設(shè)兩個(gè)服務(wù)實(shí)例都最多能同時(shí)處理10個(gè)線程請求诈悍,當(dāng)一個(gè)服務(wù)實(shí)例出現(xiàn)異常,導(dǎo)致之前本應(yīng)該請求到該異常服務(wù)實(shí)例的請求兽埃, 請求到其他正常服務(wù)實(shí)例侥钳,導(dǎo)致正常服務(wù)實(shí)例超出最大處理線程數(shù),進(jìn)而出現(xiàn)處理速度下降柄错,最終導(dǎo)致服務(wù)宕機(jī)舷夺,同時(shí)進(jìn)一步擴(kuò)散至整個(gè)庫存服務(wù),導(dǎo)致庫存服務(wù)整體無法使用的情況售貌。

那什么是服務(wù)雪崩保護(hù)呢给猾?
Nacos的服務(wù)雪崩保護(hù)也就是:當(dāng)服務(wù)出現(xiàn)異常導(dǎo)致無法處理請求時(shí),會(huì)判斷出現(xiàn)異常的服務(wù)數(shù)量有沒有達(dá)到保護(hù)閾值

  1. 如果沒有則將請求分發(fā)到其他正常服務(wù)實(shí)例中進(jìn)行處理
  2. 如果達(dá)到保護(hù)閾值則將請求正常分發(fā)到所有服務(wù)實(shí)例中颂跨,包括異常實(shí)例敢伸,至于異常實(shí)例接收到請求怎么處理,可以結(jié)合sentinelSpringCloudAlibaba組件進(jìn)行服務(wù)降級或者熔斷快速失敗等處理恒削。

目前需要解決的一個(gè)問題就是將服務(wù)實(shí)例由臨時(shí)實(shí)例改為永久實(shí)例池颈,因?yàn)榕R時(shí)實(shí)例在服務(wù)下線的時(shí)候會(huì)直接刪除實(shí)例信息,這樣就永遠(yuǎn)不會(huì)達(dá)到保護(hù)閾值钓丰,就不會(huì)觸發(fā)服務(wù)雪崩保護(hù)饶辙。

  • 更改庫存實(shí)例為永久實(shí)例
  1. 在Nacos控制臺創(chuàng)建服務(wù)


    創(chuàng)建服務(wù)
  2. 在庫存服務(wù)文件中設(shè)置屬性ephemeral為false,注意:必須先在控制臺創(chuàng)建服務(wù)否則會(huì)拋出異常
    庫存服務(wù)配置文件
  3. 啟動(dòng)永久庫存服務(wù)實(shí)例(永久實(shí)例一旦注冊到Nacos中斑粱,就不會(huì)被刪除)


    服務(wù)列表

    服務(wù)詳情
  • 測試服務(wù)雪崩保護(hù)
  1. 調(diào)整保護(hù)閾值為0.4弃揽,關(guān)閉一個(gè)庫存服務(wù)實(shí)例


    服務(wù)詳情

    通過觀察服務(wù)列表信息就可以看到未觸發(fā)保護(hù)閾值,此時(shí)所有請求應(yīng)該都是請求到健康實(shí)例上


    服務(wù)列表

    JMeter測試結(jié)果
  2. 調(diào)整保護(hù)閾值為0.6,關(guān)閉一個(gè)庫存服務(wù)實(shí)例
    服務(wù)詳情

    通過觀察服務(wù)列表信息就可以看到已經(jīng)觸發(fā)保護(hù)閾值矿微,此時(shí)請求應(yīng)該有成功請求到健康實(shí)例的也有請求到異常實(shí)例的痕慢,注意:Nacos在重新配置保護(hù)閾值后需要整體刷新一下Nacos控制臺,否則有可能閾值未生效
    服務(wù)列表

    JMeter測試結(jié)果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涌矢,一起剝皮案震驚了整個(gè)濱河市掖举,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌娜庇,老刑警劉巖塔次,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異名秀,居然都是意外死亡励负,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門匕得,熙熙樓的掌柜王于貴愁眉苦臉地迎上來继榆,“玉大人,你說我怎么就攤上這事汁掠÷远郑” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵考阱,是天一觀的道長翠忠。 經(jīng)常有香客問我,道長乞榨,這世上最難降的妖魔是什么负间? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮姜凄,結(jié)果婚禮上政溃,老公的妹妹穿的比我還像新娘。我一直安慰自己态秧,他們只是感情好董虱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著申鱼,像睡著了一般愤诱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捐友,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天淫半,我揣著相機(jī)與錄音,去河邊找鬼匣砖。 笑死科吭,一個(gè)胖子當(dāng)著我的面吹牛昏滴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播对人,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼谣殊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了牺弄?” 一聲冷哼從身側(cè)響起姻几,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎势告,沒想到半個(gè)月后蛇捌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咱台,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年络拌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吵护。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖表鳍,靈堂內(nèi)的尸體忽然破棺而出馅而,到底是詐尸還是另有隱情,我是刑警寧澤譬圣,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布瓮恭,位于F島的核電站,受9級特大地震影響厘熟,放射性物質(zhì)發(fā)生泄漏屯蹦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一绳姨、第九天 我趴在偏房一處隱蔽的房頂上張望登澜。 院中可真熱鬧,春花似錦飘庄、人聲如沸脑蠕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谴仙。三九已至,卻和暖如春碾盐,著一層夾襖步出監(jiān)牢的瞬間晃跺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工毫玖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掀虎,地道東北人凌盯。 一個(gè)月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像涩盾,于是被迫代替她去往敵國和親十气。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容