title: Resilience4j Plugin keywords: [“Resilience4j”] description: resilience4j plugin

Description

  • Resilience4j is one of the options that supports flow control and circuit breaking.
  • Resilience4j supports flow control and circuit breaking functions for gateway.

Plugin Setting

Select a mode to start shenyu-admin. For details, see deployment. For example, with Local Deployment starts the Apache ShenYu background management system.

  • In BasicConfig --> Plugin --> resilience4j, set to enable.
  • If the user don't use, please disable the plugin in the background.

Add resilience4j plugin dependency

  • Add resilience4j dependency in the pom.xml file of the gateway.
        <!-- apache shenyu resilience4j plugin start-->
        <dependency>
            <groupId>org.apache.shenyu</groupId>
            <artifactId>shenyu-spring-boot-starter-plugin-resilience4j</artifactId>
            <version>${project.version}</version>
        </dependency>
        <!-- apache shenyu resilience4j plugin end-->

Resilience4j Config

For more information on selectors and rules configuration, see Selector And Rule Config , only some of the fields are covered here.

Selector Config

It is used to filter traffic for the first time and does not require handle fields.

Rule Config

For the final filtering of traffic, there is a rule handler logic.

  • Resilience4j Processing Details

    • limitForPeriod :Configures the number of permissions available during one limit refresh period,default value:50.

    • limitRefreshPeriod :Configures the period of a limit refresh. After each period the rate limiter sets its permissions count back to the limitForPeriod value,default value:500.

    • timeoutDurationRate :Configures wait time(ms) a thread waits for a permission,default value:5000.

    • circuitEnable :Configures circuitBreaker enable, 0:OFF ,1:ON ,default value:0.

    • failureRateThreshold :Configures the failure rate threshold in percentage,When the failure rate is equal or greater than the threshold the CircuitBreaker transitions to open and starts short-circuiting calls,default value:50.

    • fallbackUri :Configures the fall back uri.

    • minimumNumberOfCalls :Configures the minimum number of calls which are required (per sliding window period) before the CircuitBreaker can calculate the error rate or slow call rate,default value:100.

    • bufferSizeInHalfOpen:Configures the number of permitted calls when the CircuitBreaker is half open,default value:10.

    • slidingWindowSize :Configures the size of the sliding window which is used to record the outcome of calls when the CircuitBreaker is closed,default value:100.

    • slidingWindowType :Configures the type of the sliding window which is used to record the outcome of calls when the CircuitBreaker is closed, Sliding window can either be 0:count-based or 1:time-based.,default value:0.

    • timeoutDuration :Configures request CircuitBreaker timeout(ms),default value:30000.

    • waitIntervalInOpen :Configures the circuitBreaker time(ms) of duration,default value:10.

    • automaticTransitionFromOpenToHalfOpenEnabled :Configures automatically transition from open state to half open state,true:ON, false:OFF, default value:false.