From 0ea7e80f3ff8be7e80f860d449a36c7b9fd9489a Mon Sep 17 00:00:00 2001 From: Eric Zhao Date: Thu, 14 Mar 2019 22:27:28 +0800 Subject: [PATCH] Update document for Sentinel Signed-off-by: Eric Zhao --- .../spring-cloud-circuitbreaker-sentinel.adoc | 44 +++++++++++++++++++ .../asciidoc/spring-cloud-circuitbreaker.adoc | 4 ++ 2 files changed, 48 insertions(+) create mode 100644 docs/src/main/asciidoc/spring-cloud-circuitbreaker-sentinel.adoc diff --git a/docs/src/main/asciidoc/spring-cloud-circuitbreaker-sentinel.adoc b/docs/src/main/asciidoc/spring-cloud-circuitbreaker-sentinel.adoc new file mode 100644 index 0000000..413f217 --- /dev/null +++ b/docs/src/main/asciidoc/spring-cloud-circuitbreaker-sentinel.adoc @@ -0,0 +1,44 @@ +=== Configuring Sentinel Circuit Breakers + +==== Default Configuration + +To provide a default configuration for all of your circuit breakers create a `Customizer` bean that is passed a +`SentinelCircuitBreakerFactory`. +The `configureDefault` method can be used to provide a default configuration. + +==== +[source,java] +---- +@Bean +public Customizer defaultCustomizer() { + return factory -> factory.configureDefault(id -> new SentinelConfigBuilder(id) + .build()); +} +---- +==== + +You can choose to provide default circuit breaking rules via `SentinelConfigBuilder#rules(rules)`. +You can also choose to load circuit breaking rules later elsewhere using +`DegradeRuleManager.loadRules(rules)` API of Sentinel. + + +==== Specific Circuit Breaker Configuration + +Similarly to providing a default configuration, you can create a `Customizer` bean this is passed a +`SentinelCircuitBreakerFactory`. + +==== +[source,java] +---- +@Bean +public Customizer slowCustomizer() { + String slowId = "slow"; + List rules = Collections.singletonList( + new DegradeRule(slowId).setGrade(RuleConstant.DEGRADE_GRADE_RT) + .setCount(100) + .setTimeWindow(10) + ); + return factory -> factory.configure(builder -> builder.rules(rules), slowId); +} +---- +==== \ No newline at end of file diff --git a/docs/src/main/asciidoc/spring-cloud-circuitbreaker.adoc b/docs/src/main/asciidoc/spring-cloud-circuitbreaker.adoc index a1abd0f..f05a062 100755 --- a/docs/src/main/asciidoc/spring-cloud-circuitbreaker.adoc +++ b/docs/src/main/asciidoc/spring-cloud-circuitbreaker.adoc @@ -20,6 +20,7 @@ breaker implementation that best fits your needs for your app. * https://github.com/Netflix/Hystrix[Netfix Hystrix] * https://github.com/resilience4j/resilience4j[Resilience4J] +* https://github.com/alibaba/Sentinel[Sentinel] == Core Concepts @@ -96,6 +97,9 @@ include::spring-cloud-circuitbreaker-hystrix.adoc[] include::spring-cloud-circuitbreaker-resilience4j.adoc[] + +include::spring-cloud-circuitbreaker-sentinel.adoc[] + == Building include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/building-jdk8.adoc[]