当前位置:网站首页>Circuitbreaker fuse of resilience4j - circuitbreakerregistry register

Circuitbreaker fuse of resilience4j - circuitbreakerregistry register

2022-06-12 10:11:00 Wang Rushuang

One : CircuitBreakerRegistry

from InMemoryCircuitBreakerRegistry Realization , Mainly responsible for their own creation and CircuitBreaker The creation of
Provides 8 Kind of establish CircuitBreakerRegistry Of of() Method ,8 Species creation CircuitBreaker Methods
 Insert picture description here
The previous article mentioned in CircuitBreakerConfiguration utilize @Bean establish CircuitBreakerRegistry Time to call InMemoryCircuitBreakerRegistry Of of Method ,of Method is called InMemoryCircuitBreakerRegistry Construction method of , The construction method will eventually CircuitBreakerConfig Put it in ConcurrentMap<String, C> configurations

Two : from CircuitBreakerRegistry In order to get CircuitBreaker

CircuitBreakerRegistry Also provided according to fuse name name obtain , Get all and so on CircuitBreaker

 /**  First get the fuse according to its name ( First call )
     *  If it doesn't exist , Just use "default" The default configuration creates fuses 
     * {@inheritDoc}
     */
    @Override
    public CircuitBreaker circuitBreaker(String name) {
        return circuitBreaker(name, getDefaultConfig());
    }
    
        /**
     *  Obtain the fuse according to the name and configuration 
     * {@inheritDoc}
     */
    @Override
    public CircuitBreaker circuitBreaker(String name, CircuitBreakerConfig config) {
        return circuitBreaker(name, config, HashMap.empty());
    }

    // establish circuitBreaker example 
    // If entryMap There's something called name Fuse , Get the fuse , If the fuse is not present , Just use config This configuration creates a new one named name Fuse of entryMap in , Then return 
    @Override
    public CircuitBreaker circuitBreaker(String name, CircuitBreakerConfig config,
        io.vavr.collection.Map<String, String> tags) {
        return computeIfAbsent(name, () -> CircuitBreaker
            .of(name, Objects.requireNonNull(config, CONFIG_MUST_NOT_BE_NULL), getAllTags(tags)));
    }

summary

CircuitBreaker The biggest feature CircuitBreakerRegistry Mainly responsible for creating fuse instances

原网站

版权声明
本文为[Wang Rushuang]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/03/202203010528030647.html