成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

服務器集群容錯是什么

本篇內(nèi)容主要講解“服務器集群容錯是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“服務器集群容錯是什么”吧!

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,昆玉企業(yè)網(wǎng)站建設,昆玉品牌網(wǎng)站建設,網(wǎng)站定制,昆玉網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,昆玉網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

集群容錯:集群服務調(diào)用失敗后,服務框架需要能夠在底層自動容錯,容錯策略很多,分別適用于不同場景。下面將對集群容錯的功能和設計進行詳細說明。

1、集群容錯場景

    在分布式服務框架中,業(yè)務消費者不需要了解服務提供者的具體位置,它發(fā)起的調(diào)用請求也不包含服務提供者的具體地址信息。因此,某個服務提供者是否可用對消費者無關(guān)緊要,最終的服務調(diào)用成功才是最重要的。

    經(jīng)過服務路由之后,選定某個服務提供者進行遠程調(diào)用,但是服務調(diào)用可能出錯,下面對可能的故障場景進行分析。

    1.1、通信鏈路故障

        這里的鏈路指的是消費者和服務提供者之間的鏈路(通常為長連接),可能導致鏈路中斷的原因有
            1)、通信過程中,對方突然宕機導致鏈路中斷。
            2)、通信過程中,對方因為解碼失敗等原因Rest掉連接,導致鏈路中斷。
            3)、通信過程中,消費者write SocketChannel發(fā)生IOException導致鏈路中斷。
            4)、通信過程中,消費者read SocketChannel發(fā)生IOException異常導致鏈路中斷。
            5)、通信雙方因為檢測心跳超時,主動close SocketChannel導致鏈路中斷。
            6)、通信過程中,網(wǎng)絡出現(xiàn)閃斷故障。
            7)、通信過程中,交換機異常導致鏈路中斷。
            8)、通信過程中,消費者或者服務提供者因為長時間Full GC導致鏈路中斷。
        無論哪種原因?qū)е骆溌分袛?,都會導致本次服務調(diào)用失敗。

    1.2、服務端超時

        當服務端無法再指定的時間內(nèi)返回應答給客戶端,就會發(fā)生超時,導致超時的原因主要有:
            1)、服務端I/O線程沒有及時從網(wǎng)絡中讀取客戶端請求消息,導致該問題的原因通常是I/O線程被意外阻塞或者執(zhí)行長周 期操作
            2)、服務端業(yè)務處理緩慢,或者長時間阻塞,列如查詢數(shù)據(jù)庫,由于沒索引導致全表查詢,耗時較長。
            3)、服務端發(fā)生長時間Full GC,導致所有業(yè)務線程暫停運行,無法及時返回應答給客戶端。

    1.3、服務端調(diào)用失敗

        有時會發(fā)生服務端調(diào)用失敗,導致服務端調(diào)用失敗的原因主要有如下幾種:
            1)、服務端解碼失敗,會返回消息解碼失敗異常。
            2)、服務端發(fā)生動態(tài)流控,返回流控異常。
            3)、服務消息隊列積壓率超過最大閾值,返回系統(tǒng)擁塞異常。
            4)、訪問權(quán)限校驗失敗,返回權(quán)限相關(guān)異常。
            5)、違反SLA(Service-Level Agreement:服務等級協(xié)議)策略,返回SLA控制相關(guān)異常。
            6)、其他系統(tǒng)異常。
        需要指出的是服務調(diào)用異常不包括業(yè)務方面的處理異常,例如數(shù)據(jù)庫異常、用戶記錄不存在異常等。

2、容錯策略

    服務不同,容錯策略也往往不同。下面看看集群容錯和路由策略之間的關(guān)系。如圖1-1所示:
     服務器集群容錯是什么
                                        圖1-1:集群容錯和服務路由的關(guān)系

    消費者根據(jù)配置的路由策略選擇某個目標地址之后,發(fā)起遠程服務調(diào)用,在此期間如果發(fā)生遠程服務調(diào)用異常,則需要框架進行集群容錯,重新進行選路和調(diào)用,集群容錯是系統(tǒng)自動執(zhí)行的,上層用戶并不關(guān)心底層的服務調(diào)用過程。

    2.1、失敗自動切換(Failover)

        服務調(diào)用失敗自動切換策略指的是當發(fā)生RPC調(diào)用異常時,重新選路,查找下一個可用的服務提供者。

        服務發(fā)布的時候,可以指定服務的集群容錯策略。消費者可以覆蓋服務提供者的通用配置,實現(xiàn)個性化的容錯策略。

        Failover策略的設計思路如下:消費者路由操作完成之后,獲得目標地址,調(diào)用通信框架的消息發(fā)送接口發(fā)送請求,監(jiān)聽服務端應答。如果返回的結(jié)果時RPC調(diào)用異常(超時、流控、解碼失敗等系統(tǒng)異常),根據(jù)消費者集群容錯的策略進行容錯路由,如果是Failover,則重新返回到路由Handler的入口,從路由節(jié)點繼續(xù)執(zhí)行。選路完成之后,對目標地址進行對比,防止重新路由到故障服務節(jié)點,過濾掉上次的故障服務提供者之后,調(diào)用通信框架的消息發(fā)送接口發(fā)送請求消息。

        分布式服務框架提供Failover容錯策略,但是用戶在使用時需要自己保證用對地方,下面對應用場景進行總結(jié):
            1)、讀操作,因為通常它是冪等的。
            2)、冪等性服務,保證調(diào)用1次與N次效果相同。
        需要特別指出的是,失敗重試會增加服務調(diào)用時延,因此框架必須對失敗重試的最大數(shù)做限制,通常默認為3,防止無限制重試導致服務調(diào)用時延不可控。

    2.2、失敗通知(Failback)

        很多業(yè)務場景中,消費者需要能夠獲取到服務調(diào)用失敗的具體信息,通過對失敗錯誤碼等異常信息的判斷,決定后續(xù)的執(zhí)行策略,例如非冪等性服務調(diào)用。

        Failback的設計方案如下:服務框架獲取到服務提供者返回的RPC異常響應之后,根據(jù)策略進行容錯。如果是Failback模式,則不再重試其他服務提供者,而是將RPC異常通知給消費者,由消費者捕獲異常進行后續(xù)處理。

    2.3、失敗緩存(Failcache)

        Failcache策略是失敗自動恢復的一種,在實際開發(fā)中應用場景如下:
            √ 服務狀態(tài)路由,必須定點發(fā)送到指定的服務提供者。當發(fā)生鏈路中斷、流控等服務暫時不可用時,服務框架將消息暫時緩存起來,等待周期T,重新發(fā)送,回到服務提供者能夠正常處理該消息。
             √ 對時延要求不敏感的服務。系統(tǒng)服務調(diào)用失敗,通常是鏈路暫時不可用、服務流控、GC掛住服務提供者進程等,這種失敗不是永久性的,他的失敗是可預期的。如果消費者調(diào)用對時延不敏感,可以考慮使用自動恢復模式。既先緩存、再等待、最后重試。
             √ 通知類服務。對服務調(diào)用的實時性不高,可以容忍自動恢復帶來的時延增長。

        為了保證可靠性,F(xiàn)ailcache策略在設計的時候需要考慮如下幾個要素:

              √ 緩存時間、緩存對象上限數(shù)等需要做出限制,防止內(nèi)存溢出。
              √ 緩存淘汰算法的選擇,是否支持用戶配置。
              √ 定時重試的周期T,重試的最大次數(shù)等需要做出限制并支持用戶指定。

    2.4、快速失?。‵ailfast)

        在業(yè)務高峰期,對于一些非核心的服務,希望只調(diào)用一次,失敗也不再重試,為重要的核心服務節(jié)約寶貴的運行資源。此時快速失敗是個不錯的選擇。

        快速失敗策略設計簡單,獲取到服務異常之后,直接忽略異常,記錄異常日志。

    2.5、容錯策略擴展

        無論服務框架支持多少種容錯策略,業(yè)務在實際使用過程中一定會有不適應的地方,通過開放容錯策略接口的方式,可以支持用戶自定義擴展容錯策略。

        在集群容錯設計的時候,需要考慮擴展性,主要從以下幾方面進行設計:

            1)、容錯接口的開放。
            2)、屏蔽底層細節(jié),用戶定制簡單。
            3)、配置應當支持擴展,不要讓用戶擴展服務框架Schema。

到此,相信大家對“服務器集群容錯是什么”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

當前名稱:服務器集群容錯是什么
網(wǎng)站路徑:http://jinyejixie.com/article36/iipppg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、手機網(wǎng)站建設、Google、網(wǎng)站導航、網(wǎng)站排名、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
韶山市| 石景山区| 惠来县| 满洲里市| 冀州市| 河曲县| 巴林左旗| 乐陵市| 从江县| 新河县| 高青县| 佛学| 太保市| 郁南县| 蛟河市| 尚义县| 双柏县| 沧州市| 石城县| 尼勒克县| 田阳县| 宁武县| 潜山县| 蒙山县| 师宗县| 清水县| 西平县| 八宿县| 孟村| 隆子县| 赤水市| 民勤县| 麻城市| 西林县| 额济纳旗| 张家口市| 台北市| 尖扎县| 株洲县| 仪征市| 肃北|