亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

斷路器HystrixCircuitBreaker

Integ / 3555人閱讀

摘要:一個(gè)啥都不做的斷路器,它允許所有請(qǐng)求通過(guò),并且斷路器始終處于閉合狀態(tài)斷路器的另一個(gè)實(shí)現(xiàn)類。主要步驟有如果斷路器強(qiáng)制打開,返回如果斷路器強(qiáng)制關(guān)閉,返回判斷的值,如果大于等于,返回否則返回

package com.netflix.hystrix;

import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;

import com.netflix.hystrix.HystrixCommandMetrics.HealthCounts;
import rx.Subscriber;
import rx.Subscription;

public interface HystrixCircuitBreaker {

    boolean allowRequest();
    
    boolean isOpen();

    void markSuccess();

    void markNonSuccess();

    boolean attemptExecution();

    class Factory {
        // String is HystrixCommandKey.name() (we can"t use HystrixCommandKey directly as we can"t guarantee it implements hashcode/equals correctly)
        private static ConcurrentHashMap circuitBreakersByCommand = new ConcurrentHashMap();
    }


    class HystrixCircuitBreakerImpl implements HystrixCircuitBreaker {
    }

    static class NoOpCircuitBreaker implements HystrixCircuitBreaker {
    }

}

下面先看一下該接口的抽象方法:

allowRequest(): 每個(gè)Hystrix命令的請(qǐng)求都通過(guò)它判斷是否被執(zhí)行(已經(jīng)不再使用,使用attemptExecution()方法進(jìn)行判斷)
attemptExecution(): 每個(gè)Hystrix命令的請(qǐng)求都通過(guò)它判斷是否被執(zhí)行
isOpen(): 返回當(dāng)前斷路器是否打開
markSuccess(): 用來(lái)關(guān)閉斷路器
markNonSuccess: 用來(lái)打開斷路器

下面看一下該接口中的類:

Factory: 維護(hù)了一個(gè)Hystrix命令和HystrixCircuitBreaker的關(guān)系的集合ConcurrentHashMap circuitBreakersByCommand。其中key通過(guò)HystrixCommandKey來(lái)定義,每一個(gè)Hystrix命令都需要有一個(gè)Key來(lái)標(biāo)識(shí),同時(shí)根據(jù)這個(gè)Key可以找到對(duì)應(yīng)的斷路器實(shí)例。
NoOpCircuitBreaker: 一個(gè)啥都不做的斷路器,它允許所有請(qǐng)求通過(guò),并且斷路器始終處于閉合狀態(tài)
HystrixCircuitBreakerImpl:斷路器的另一個(gè)實(shí)現(xiàn)類。

HystrixCircuitBreakerImpl介紹

在該類中定義了斷路器的五個(gè)核心對(duì)象:

HystrixCommandProperties properties:斷路器對(duì)應(yīng)實(shí)例的屬性集合對(duì)象/斷路器對(duì)應(yīng)HystrixCommand實(shí)例的屬性對(duì)象
HystrixCommandMetrics metrics:用來(lái)讓HystrixCommand記錄各類度量指標(biāo)的對(duì)象
AtomicReference status: 用來(lái)記錄斷路器的狀態(tài),默認(rèn)是關(guān)閉狀態(tài)
AtomicLong circuitOpened:斷路器打開的時(shí)間戳,默認(rèn)-1,表示斷路器未打開
AtomicReference activeSubscription: 記錄HystrixCommand

對(duì)接口的實(shí)現(xiàn)如下:

        @Override
        public boolean isOpen() {
            if (properties.circuitBreakerForceOpen().get()) {
                return true;
            }
            if (properties.circuitBreakerForceClosed().get()) {
                return false;
            }
            return circuitOpened.get() >= 0;
        }

用來(lái)判斷斷路器是否打開或關(guān)閉。主要步驟有:

如果斷路器強(qiáng)制打開,返回true
如果斷路器強(qiáng)制關(guān)閉,返回false
判斷circuitOpened的值,如果大于等于0,返回true, 否則返回false

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/77428.html

相關(guān)文章

  • Netflix Hystrix路器原理分析

    摘要:斷路器原理斷路器在和執(zhí)行過(guò)程中起到至關(guān)重要的作用。其中通過(guò)來(lái)定義,每一個(gè)命令都需要有一個(gè)來(lái)標(biāo)識(shí),同時(shí)根據(jù)這個(gè)可以找到對(duì)應(yīng)的斷路器實(shí)例。一個(gè)啥都不做的斷路器,它允許所有請(qǐng)求通過(guò),并且斷路器始終處于閉合狀態(tài)斷路器的另一個(gè)實(shí)現(xiàn)類。 斷路器原理 斷路器在HystrixCommand和HystrixObservableCommand執(zhí)行過(guò)程中起到至關(guān)重要的作用。查看一下核心組件HystrixCi...

    Lemon_95 評(píng)論0 收藏0
  • 云計(jì)算模型- 路器模式

    摘要:斷路器模式也使系統(tǒng)能夠檢測(cè)出錯(cuò)誤是否已被修復(fù)。斷路器模式的目的和重試模式有所不同。斷路器模式為在從錯(cuò)誤中恢復(fù)的系統(tǒng)提供穩(wěn)定性,同時(shí)降低對(duì)性能的影響。 斷路器模式 當(dāng)連接到遠(yuǎn)程服務(wù)或資源到時(shí)候,處理那些需要一段時(shí)間才能修復(fù)的系統(tǒng)缺陷。這能優(yōu)化應(yīng)用對(duì)穩(wěn)定性和可靠性。 上下文和問(wèn)題 在分布式環(huán)境中,對(duì)遠(yuǎn)端服務(wù)或資源的請(qǐng)求可能會(huì)由于諸如以下臨時(shí)性錯(cuò)誤而失?。壕徛木W(wǎng)絡(luò)請(qǐng)求,連接超時(shí),資源被過(guò)度...

    KoreyLee 評(píng)論0 收藏0
  • SpringCloud升級(jí)之路2020.0.x版-36. 驗(yàn)證路器正確性

    摘要:本系列代碼地址上一節(jié)我們通過(guò)單元測(cè)試驗(yàn)證了線程隔離的正確性,這一節(jié)我們來(lái)驗(yàn)證我們斷路器的正確性,主要包括驗(yàn)證配置正確加載即我們?cè)谂渲美缰械募尤氲牡呐渲帽徽_加載應(yīng)用了。本系列代碼地址:https://github.com/JoJoTec/spring-cloud-parent上一節(jié)我們通過(guò)單元測(cè)試驗(yàn)證了線程隔離的正確性,這一節(jié)我們來(lái)驗(yàn)證我們斷路器的正確性,主要包括:驗(yàn)證配置正確加載:即我們...

    NotFound 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<