This is an automated email from the ASF dual-hosted git repository.

victory pushed a commit to branch samples-for-2.7.0-SNAPSHOT
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-samples.git

commit 7e6828b2520970a093723b8db20b908461c8786f
Author: cvictory <shenglic...@gmail.com>
AuthorDate: Wed Dec 26 18:56:41 2018 +0800

    fix hystrix issue, edit resilience4j project
---
 .../annotation/AnnotationConsumer.java             |  8 ++--
 .../annotation/AnnotationProvider.java             |  4 +-
 .../annotation/EmbeddedZooKeeper.java              |  4 +-
 .../annotation/action/AnnotationAction.java        |  4 +-
 .../annotation/api/AnnotationService.java          |  2 +-
 .../annotation/impl/AnnotationServiceImpl.java     |  6 +--
 .../annotation/AnnotationConsumer.java             |  8 ++--
 .../annotation/AnnotationProvider.java             |  4 +-
 .../annotation/EmbeddedZooKeeper.java              |  4 +-
 .../annotation/ZKTools.java                        |  2 +-
 .../annotation/action/AnnotationAction.java        |  4 +-
 .../annotation/api/AnnotationService.java          |  2 +-
 .../annotation/impl/AnnotationServiceImpl.java     |  4 +-
 .../hystrix/annotation/AnnotationConsumer.java     |  4 +-
 .../hystrix/annotation/AnnotationProvider.java     |  2 +-
 .../hystrix/annotation/EmbeddedZooKeeper.java      |  4 +-
 .../dubbo/samples/hystrix/annotation/ZKTools.java  |  2 +-
 .../annotation/action/AnnotationAction.java        |  4 +-
 .../hystrix/annotation/api/AnnotationService.java  |  2 +-
 .../annotation/impl/AnnotationServiceImpl.java     |  4 +-
 dubbo-samples-resilience4j/README.md               |  4 +-
 .../dubbo-samples-resilience4j-filter/README.md    |  4 +-
 .../dubbo-samples-resilience4j-filter/pom.xml      |  5 ++
 .../samples/resilience4j/EmbeddedZooKeeper.java    | 10 ++--
 .../Resilience4jAnnotationConsumer.java            |  6 ++-
 .../Resilience4jAnnotationProvider.java            | 20 ++++----
 .../resilience4j/action/AnnotationAction.java      | 47 ++++++++++++++++++-
 .../resilience4j/api/CircuitBreakerService.java    |  4 +-
 .../resilience4j/api/RateLimiterService.java       |  4 +-
 .../filter/Resilience4jCircuitBreakerFilter.java   | 22 ++++++++-
 .../filter/Resilience4jRateLimiterFilter.java      | 53 +++++++++++++++-------
 .../resilience4j/impl/AnnotationServiceImpl.java   |  4 +-
 .../impl/CircuitBreakerServiceImpl.java            | 10 +++-
 .../resilience4j/impl/RateLimiterServiceImpl.java  | 12 ++++-
 .../META-INF/dubbo/org.apache.dubbo.rpc.Filter     |  2 +
 .../resources/spring/dubbo-consumer.properties     |  9 ++--
 .../resources/spring/dubbo-provider.properties     | 10 ++--
 .../README.md                                      |  4 +-
 .../Resilience4jBootAnnotationConsumer.java        |  2 +-
 .../Resilience4jBootAnnotationProvider.java        |  2 +-
 40 files changed, 213 insertions(+), 99 deletions(-)

diff --git 
a/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationConsumer.java
 
b/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/AnnotationConsumer.java
similarity index 86%
rename from 
dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationConsumer.java
rename to 
dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/AnnotationConsumer.java
index ff80068..059e25d 100644
--- 
a/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationConsumer.java
+++ 
b/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/AnnotationConsumer.java
@@ -17,10 +17,10 @@
  *
  */
 
-package org.apache.dubbo.samples.annotation;
+package org.apache.dubbo.samples.simple.annotation;
 
 import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
-import org.apache.dubbo.samples.annotation.action.AnnotationAction;
+import org.apache.dubbo.samples.simple.annotation.action.AnnotationAction;
 import 
org.springframework.context.annotation.AnnotationConfigApplicationContext;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
@@ -41,9 +41,9 @@ public class AnnotationConsumer {
     }
 
     @Configuration
-    @EnableDubbo(scanBasePackages = 
"org.apache.dubbo.samples.annotation.action")
+    @EnableDubbo(scanBasePackages = 
"org.apache.dubbo.samples.simple.annotation.action")
     @PropertySource("classpath:/spring/dubbo-consumer.properties")
-    @ComponentScan(value = {"org.apache.dubbo.samples.annotation.action"})
+    @ComponentScan(value = 
{"org.apache.dubbo.samples.simple.annotation.action"})
     static public class ConsumerConfiguration {
 
     }
diff --git 
a/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationProvider.java
 
b/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/AnnotationProvider.java
similarity index 93%
rename from 
dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationProvider.java
rename to 
dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/AnnotationProvider.java
index 277beb2..4e9ef27 100644
--- 
a/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationProvider.java
+++ 
b/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/AnnotationProvider.java
@@ -17,7 +17,7 @@
  *
  */
 
-package org.apache.dubbo.samples.annotation;
+package org.apache.dubbo.samples.simple.annotation;
 
 
 import org.apache.dubbo.config.ProviderConfig;
@@ -40,7 +40,7 @@ public class AnnotationProvider {
     }
 
     @Configuration
-    @EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.annotation.impl")
+    @EnableDubbo(scanBasePackages = 
"org.apache.dubbo.samples.simple.annotation.impl")
     @PropertySource("classpath:/spring/dubbo-provider.properties")
     static public class ProviderConfiguration {
         @Bean
diff --git 
a/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/EmbeddedZooKeeper.java
 
b/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/EmbeddedZooKeeper.java
similarity index 99%
rename from 
dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/EmbeddedZooKeeper.java
rename to 
dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/EmbeddedZooKeeper.java
index 3d83b5b..eaab029 100644
--- 
a/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/EmbeddedZooKeeper.java
+++ 
b/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/EmbeddedZooKeeper.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.samples.annotation;
+package org.apache.dubbo.samples.simple.annotation;
 
 import java.io.File;
 import java.lang.reflect.Method;
@@ -252,4 +252,4 @@ public class EmbeddedZooKeeper implements SmartLifecycle {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git 
a/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/action/AnnotationAction.java
 
b/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/action/AnnotationAction.java
similarity index 90%
rename from 
dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/action/AnnotationAction.java
rename to 
dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/action/AnnotationAction.java
index 3c29006..87abc4a 100644
--- 
a/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/action/AnnotationAction.java
+++ 
b/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/action/AnnotationAction.java
@@ -17,10 +17,10 @@
  *
  */
 
-package org.apache.dubbo.samples.annotation.action;
+package org.apache.dubbo.samples.simple.annotation.action;
 
 import org.apache.dubbo.config.annotation.Reference;
-import org.apache.dubbo.samples.annotation.api.AnnotationService;
+import org.apache.dubbo.samples.simple.annotation.api.AnnotationService;
 
 import org.springframework.stereotype.Component;
 
diff --git 
a/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/api/AnnotationService.java
 
b/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/api/AnnotationService.java
similarity index 94%
rename from 
dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/api/AnnotationService.java
rename to 
dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/api/AnnotationService.java
index 83ebe34..e4a3818 100644
--- 
a/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/api/AnnotationService.java
+++ 
b/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/api/AnnotationService.java
@@ -17,7 +17,7 @@
  *
  */
 
-package org.apache.dubbo.samples.annotation.api;
+package org.apache.dubbo.samples.simple.annotation.api;
 
 /**
  * AsyncService
diff --git 
a/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/impl/AnnotationServiceImpl.java
 
b/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/impl/AnnotationServiceImpl.java
similarity index 89%
rename from 
dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/impl/AnnotationServiceImpl.java
rename to 
dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/impl/AnnotationServiceImpl.java
index 1a4c6d8..73b0707 100644
--- 
a/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/impl/AnnotationServiceImpl.java
+++ 
b/dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation/impl/AnnotationServiceImpl.java
@@ -14,10 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.samples.annotation.impl;
+package org.apache.dubbo.samples.simple.annotation.impl;
 
 import org.apache.dubbo.config.annotation.Service;
-import org.apache.dubbo.samples.annotation.api.AnnotationService;
+import org.apache.dubbo.samples.simple.annotation.api.AnnotationService;
 
 /**
  *
@@ -31,4 +31,4 @@ public class AnnotationServiceImpl implements 
AnnotationService {
         return "annotation: hello, " + name;
     }
 
-}
\ No newline at end of file
+}
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationConsumer.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/AnnotationConsumer.java
similarity index 84%
rename from 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationConsumer.java
rename to 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/AnnotationConsumer.java
index 0f99d52..c20420b 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationConsumer.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/AnnotationConsumer.java
@@ -17,10 +17,10 @@
  *
  */
 
-package org.apache.dubbo.samples.annotation;
+package org.apache.dubbo.samples.configcenter.annotation;
 
 import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
-import org.apache.dubbo.samples.annotation.action.AnnotationAction;
+import 
org.apache.dubbo.samples.configcenter.annotation.action.AnnotationAction;
 
 import 
org.springframework.context.annotation.AnnotationConfigApplicationContext;
 import org.springframework.context.annotation.ComponentScan;
@@ -42,9 +42,9 @@ public class AnnotationConsumer {
     }
 
     @Configuration
-    @EnableDubbo(scanBasePackages = 
"org.apache.dubbo.samples.annotation.action", multipleConfig = true)
+    @EnableDubbo(scanBasePackages = 
"org.apache.dubbo.samples.configcenter.annotation.action", multipleConfig = 
true)
     @PropertySource("classpath:/spring/dubbo-consumer.properties")
-    @ComponentScan(value = {"org.apache.dubbo.samples.annotation.action"})
+    @ComponentScan(value = 
{"org.apache.dubbo.samples.configcenter.annotation.action"})
     static public class ConsumerConfiguration {
 
     }
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationProvider.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/AnnotationProvider.java
similarity index 92%
rename from 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationProvider.java
rename to 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/AnnotationProvider.java
index 277beb2..408858c 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationProvider.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/AnnotationProvider.java
@@ -17,7 +17,7 @@
  *
  */
 
-package org.apache.dubbo.samples.annotation;
+package org.apache.dubbo.samples.configcenter.annotation;
 
 
 import org.apache.dubbo.config.ProviderConfig;
@@ -40,7 +40,7 @@ public class AnnotationProvider {
     }
 
     @Configuration
-    @EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.annotation.impl")
+    @EnableDubbo(scanBasePackages = 
"org.apache.dubbo.samples.configcenter.annotation.impl")
     @PropertySource("classpath:/spring/dubbo-provider.properties")
     static public class ProviderConfiguration {
         @Bean
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/EmbeddedZooKeeper.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/EmbeddedZooKeeper.java
similarity index 99%
rename from 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/EmbeddedZooKeeper.java
rename to 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/EmbeddedZooKeeper.java
index db0819a..6a14437 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/EmbeddedZooKeeper.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/EmbeddedZooKeeper.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.samples.annotation;
+package org.apache.dubbo.samples.configcenter.annotation;
 
 import org.apache.zookeeper.server.ServerConfig;
 import org.apache.zookeeper.server.ZooKeeperServerMain;
@@ -247,4 +247,4 @@ public class EmbeddedZooKeeper implements SmartLifecycle {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/ZKTools.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/ZKTools.java
similarity index 98%
rename from 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/ZKTools.java
rename to 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/ZKTools.java
index a4202da..1710bfd 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/ZKTools.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/ZKTools.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.samples.annotation;
+package org.apache.dubbo.samples.hystrix.annotation;
 
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.framework.CuratorFrameworkFactory;
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/action/AnnotationAction.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/action/AnnotationAction.java
similarity index 89%
rename from 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/action/AnnotationAction.java
rename to 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/action/AnnotationAction.java
index b8a5c3a..46a60c1 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/action/AnnotationAction.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/action/AnnotationAction.java
@@ -17,10 +17,10 @@
  *
  */
 
-package org.apache.dubbo.samples.annotation.action;
+package org.apache.dubbo.samples.configcenter.annotation.action;
 
 import org.apache.dubbo.config.annotation.Reference;
-import org.apache.dubbo.samples.externalconfiguration.api.AnnotationService;
+import org.apache.dubbo.samples.configcenter.annotation.api.AnnotationService;
 import org.springframework.stereotype.Component;
 
 /**
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/api/AnnotationService.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/api/AnnotationService.java
similarity index 93%
rename from 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/api/AnnotationService.java
rename to 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/api/AnnotationService.java
index 8378798..0d724eb 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/api/AnnotationService.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/api/AnnotationService.java
@@ -17,7 +17,7 @@
  *
  */
 
-package org.apache.dubbo.samples.externalconfiguration.api;
+package org.apache.dubbo.samples.configcenter.annotation.api;
 
 /**
  * AsyncService
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/impl/AnnotationServiceImpl.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/impl/AnnotationServiceImpl.java
similarity index 89%
rename from 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/impl/AnnotationServiceImpl.java
rename to 
dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/impl/AnnotationServiceImpl.java
index deb5334..6e7a103 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/impl/AnnotationServiceImpl.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter/annotation/impl/AnnotationServiceImpl.java
@@ -17,10 +17,10 @@
  *
  */
 
-package org.apache.dubbo.samples.annotation.impl;
+package org.apache.dubbo.samples.configcenter.annotation.impl;
 
 import org.apache.dubbo.config.annotation.Service;
-import org.apache.dubbo.samples.externalconfiguration.api.AnnotationService;
+import org.apache.dubbo.samples.configcenter.annotation.api.AnnotationService;
 
 /**
  * AsyncServiceImpl
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationConsumer.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationConsumer.java
index b8d1623..58a6e9c 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationConsumer.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationConsumer.java
@@ -17,10 +17,10 @@
  *
  */
 
-package org.apache.dubbo.samples.annotation;
+package org.apache.dubbo.samples.hystrix.annotation;
 
 import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
-import org.apache.dubbo.samples.annotation.action.AnnotationAction;
+import org.apache.dubbo.samples.hystrix.annotation.action.AnnotationAction;
 
 import 
org.springframework.context.annotation.AnnotationConfigApplicationContext;
 import org.springframework.context.annotation.ComponentScan;
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationProvider.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationProvider.java
index ff9048e..1d20827 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationProvider.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/AnnotationProvider.java
@@ -17,7 +17,7 @@
  *
  */
 
-package org.apache.dubbo.samples.annotation;
+package org.apache.dubbo.samples.hystrix.annotation;
 
 
 import org.apache.dubbo.config.ProviderConfig;
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/EmbeddedZooKeeper.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/EmbeddedZooKeeper.java
index ae388dc..64335ba 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/EmbeddedZooKeeper.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/EmbeddedZooKeeper.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.samples.annotation;
+package org.apache.dubbo.samples.hystrix.annotation;
 
 import org.apache.zookeeper.server.ServerConfig;
 import org.apache.zookeeper.server.ZooKeeperServerMain;
@@ -246,4 +246,4 @@ public class EmbeddedZooKeeper implements SmartLifecycle {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/ZKTools.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/ZKTools.java
index febd018..01e4655 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/ZKTools.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/ZKTools.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.samples.annotation;
+package org.apache.dubbo.samples.hystrix.annotation;
 
 import org.apache.dubbo.common.utils.StringUtils;
 
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/action/AnnotationAction.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/action/AnnotationAction.java
index d8dc4a8..f96c885 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/action/AnnotationAction.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/action/AnnotationAction.java
@@ -17,10 +17,10 @@
  *
  */
 
-package org.apache.dubbo.samples.annotation.action;
+package org.apache.dubbo.samples.hystrix.annotation.action;
 
 import org.apache.dubbo.config.annotation.Reference;
-import org.apache.dubbo.samples.externalconfiguration.api.AnnotationService;
+import org.apache.dubbo.samples.hystrix.annotation.api.AnnotationService;
 
 import org.springframework.stereotype.Component;
 
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/api/AnnotationService.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/api/AnnotationService.java
index 8378798..ebaeae5 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/api/AnnotationService.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/api/AnnotationService.java
@@ -17,7 +17,7 @@
  *
  */
 
-package org.apache.dubbo.samples.externalconfiguration.api;
+package org.apache.dubbo.samples.hystrix.annotation.api;
 
 /**
  * AsyncService
diff --git 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/impl/AnnotationServiceImpl.java
 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/impl/AnnotationServiceImpl.java
index df6d8d4..ef85f11 100644
--- 
a/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/impl/AnnotationServiceImpl.java
+++ 
b/dubbo-samples-configcenter/dubbo-samples-configcenter-multi-registries/src/main/java/org/apache/dubbo/samples/hystrix/annotation/impl/AnnotationServiceImpl.java
@@ -17,10 +17,10 @@
  *
  */
 
-package org.apache.dubbo.samples.annotation.impl;
+package org.apache.dubbo.samples.hystrix.annotation.impl;
 
 import org.apache.dubbo.config.annotation.Service;
-import org.apache.dubbo.samples.externalconfiguration.api.AnnotationService;
+import org.apache.dubbo.samples.hystrix.annotation.api.AnnotationService;
 
 /**
  * AsyncServiceImpl
diff --git a/dubbo-samples-resilience4j/README.md 
b/dubbo-samples-resilience4j/README.md
index 12c735e..e938b7b 100644
--- a/dubbo-samples-resilience4j/README.md
+++ b/dubbo-samples-resilience4j/README.md
@@ -2,12 +2,12 @@
 
 ### Start Provider
 
-Run `org.apache.dubbo.samples.annotation.AnnotationProvider`
+Run `AnnotationProvider`
 
 
 ### Start Consumer
 
-Run `org.apache.dubbo.samples.annotation.AnnotationConsumer`
+Run `AnnotationConsumer`
 
 ### Result
 
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/README.md 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/README.md
index 12c735e..e938b7b 100644
--- a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/README.md
+++ b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/README.md
@@ -2,12 +2,12 @@
 
 ### Start Provider
 
-Run `org.apache.dubbo.samples.annotation.AnnotationProvider`
+Run `AnnotationProvider`
 
 
 ### Start Consumer
 
-Run `org.apache.dubbo.samples.annotation.AnnotationConsumer`
+Run `AnnotationConsumer`
 
 ### Result
 
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/pom.xml 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/pom.xml
index f7b6552..594d0dc 100644
--- a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/pom.xml
+++ b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/pom.xml
@@ -71,5 +71,10 @@
             <groupId>org.springframework</groupId>
             <artifactId>spring-context</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjrt</artifactId>
+            <version>1.8.13</version>
+        </dependency>
     </dependencies>
 </project>
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/EmbeddedZooKeeper.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/EmbeddedZooKeeper.java
index 9c8ae8a..5bc28fa 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/EmbeddedZooKeeper.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/EmbeddedZooKeeper.java
@@ -15,11 +15,6 @@
  */
 package org.apache.dubbo.samples.resilience4j;
 
-import java.io.File;
-import java.lang.reflect.Method;
-import java.util.Properties;
-import java.util.UUID;
-
 import org.apache.zookeeper.server.ServerConfig;
 import org.apache.zookeeper.server.ZooKeeperServerMain;
 import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
@@ -29,6 +24,11 @@ import org.springframework.context.SmartLifecycle;
 import org.springframework.util.ErrorHandler;
 import org.springframework.util.SocketUtils;
 
+import java.io.File;
+import java.lang.reflect.Method;
+import java.util.Properties;
+import java.util.UUID;
+
 /**
  * from: 
https://github.com/spring-projects/spring-xd/blob/v1.3.1.RELEASE/spring-xd-dirt/src/main/java/org/springframework/xd/dirt/zookeeper/ZooKeeperUtils.java
  *
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jAnnotationConsumer.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jAnnotationConsumer.java
index 78e63e9..3c1f5b3 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jAnnotationConsumer.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jAnnotationConsumer.java
@@ -30,7 +30,7 @@ import org.springframework.context.annotation.PropertySource;
 /**
  * CallbackConsumer
  */
-public class AnnotationConsumer {
+public class Resilience4jAnnotationConsumer {
 
     public static void main(String[] args) throws Exception {
         AnnotationConfigApplicationContext context = new 
AnnotationConfigApplicationContext(ConsumerConfiguration.class);
@@ -38,11 +38,13 @@ public class AnnotationConsumer {
         final AnnotationAction annotationAction = (AnnotationAction) 
context.getBean("annotationAction");
         String hello = annotationAction.doSayHello("world");
         System.err.println("result :" + hello);
+        annotationAction.sayCircuitBreaker("circuitBreaker");
+        annotationAction.sayRateLimiter("rateLimiter", "Just Happy!");
         System.in.read();
     }
 
     @Configuration
-    @EnableDubbo(scanBasePackages = 
"com.alibaba.dubbo.samples.resilience4j.action")
+    @EnableDubbo(scanBasePackages = 
"org.apache.dubbo.samples.resilience4j.action")
     @PropertySource("classpath:/spring/dubbo-consumer.properties")
     @ComponentScan(value = {"org.apache.dubbo.samples.resilience4j.action"})
     @EnableAspectJAutoProxy
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jAnnotationProvider.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jAnnotationProvider.java
index 8f5311a..6b213cb 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jAnnotationProvider.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jAnnotationProvider.java
@@ -20,18 +20,15 @@
 package org.apache.dubbo.samples.resilience4j;
 
 
-import org.apache.dubbo.config.ProviderConfig;
 import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
 import 
org.springframework.context.annotation.AnnotationConfigApplicationContext;
-import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.context.annotation.PropertySource;
 
 /**
  * MergeProvider
  */
-public class AnnotationProvider {
+public class Resilience4jAnnotationProvider {
 
     public static void main(String[] args) throws Exception {
         new EmbeddedZooKeeper(2181, false).start();
@@ -41,16 +38,17 @@ public class AnnotationProvider {
     }
 
     @Configuration
-    @EnableDubbo(scanBasePackages = 
"com.alibaba.dubbo.samples.resilience4j.impl")
+    @EnableDubbo(scanBasePackages = 
"org.apache.dubbo.samples.resilience4j.impl")
     @PropertySource("classpath:/spring/dubbo-provider.properties")
 //    @EnableAspectJAutoProxy
     static public class ProviderConfiguration {
-        @Bean
-        public ProviderConfig providerConfig() {
-            ProviderConfig providerConfig = new ProviderConfig();
-            providerConfig.setTimeout(1000);
-            return providerConfig;
-        }
+//        @Bean
+//        public ProviderConfig providerConfig() {
+//            ProviderConfig providerConfig = new ProviderConfig();
+//            providerConfig.setTimeout(1000);
+//            providerConfig.setFilter("rateLimiter");
+//            return providerConfig;
+//        }
 
 //        @Bean
 //        public HystrixCommandAspect hystrixCommandAspect() {
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/action/AnnotationAction.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/action/AnnotationAction.java
index 785c9eb..448454e 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/action/AnnotationAction.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/action/AnnotationAction.java
@@ -23,6 +23,9 @@ import org.apache.dubbo.config.annotation.Reference;
 
 
 import org.apache.dubbo.samples.resilience4j.api.AnnotationService;
+import org.apache.dubbo.samples.resilience4j.api.CircuitBreakerService;
+import org.apache.dubbo.samples.resilience4j.api.RateLimiterService;
+import org.springframework.beans.CachedIntrospectionResults;
 import org.springframework.stereotype.Component;
 
 /**
@@ -33,12 +36,54 @@ public class AnnotationAction {
 
     @Reference
     private AnnotationService annotationService;
+    @Reference
+    private CircuitBreakerService circuitBreakerService;
+    @Reference
+    private RateLimiterService rateLimiterService;
 
-//    @HystrixCommand(fallbackMethod = "reliable")
     public String doSayHello(String name) {
         return annotationService.sayHello(name);
     }
 
+    public void sayCircuitBreaker(String name) {
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                {
+                    int i = 0;
+                    while (true) {
+                        try {
+                            Thread.sleep(10);
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                        System.out.println(circuitBreakerService.say(name + 
(i++)));
+                    }
+                }
+            }
+        }).start();
+
+    }
+
+    public void sayRateLimiter(String name, String value) {
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                {
+                    int i = 0;
+                    while (true) {
+                        try {
+                            Thread.sleep(10);
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                        System.out.println(rateLimiterService.say(name + 
(i++), value + i));
+                    }
+                }
+            }
+        }).start();
+    }
+
     public String reliable(String name) {
         return "hystrix fallback value";
     }
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/api/CircuitBreakerService.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/api/CircuitBreakerService.java
index 8c824ff..ae14529 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/api/CircuitBreakerService.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/api/CircuitBreakerService.java
@@ -1,7 +1,9 @@
 package org.apache.dubbo.samples.resilience4j.api;
 
 /**
- * @author cvictory ON 2018/12/26
+ * 2018/12/26
  */
 public interface CircuitBreakerService {
+
+    String say(String name);
 }
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/api/RateLimiterService.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/api/RateLimiterService.java
index 3383625..3c37fbf 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/api/RateLimiterService.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/api/RateLimiterService.java
@@ -1,7 +1,9 @@
 package org.apache.dubbo.samples.resilience4j.api;
 
 /**
- * @author cvictory ON 2018/12/26
+ * 2018/12/26
  */
 public interface RateLimiterService {
+
+    String say(String name, String value);
 }
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/filter/Resilience4jCircuitBreakerFilter.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/filter/Resilience4jCircuitBreakerFilter.java
index 7b795cf..1dcd7bc 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/filter/Resilience4jCircuitBreakerFilter.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/filter/Resilience4jCircuitBreakerFilter.java
@@ -1,3 +1,21 @@
+/*
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements.  See the NOTICE file distributed with
+ *   this work for additional information regarding copyright ownership.
+ *   The ASF licenses this file to You under the Apache License, Version 2.0
+ *   (the "License"); you may not use this file except in compliance with
+ *   the License.  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
 package org.apache.dubbo.samples.resilience4j.filter;
 
 import io.github.resilience4j.circuitbreaker.CircuitBreaker;
@@ -22,11 +40,12 @@ public class Resilience4jCircuitBreakerFilter implements 
Filter {
                 .ringBufferSizeInClosedState(5)
                 .build();
         CircuitBreakerRegistry registry = CircuitBreakerRegistry.of(config);
-        circuitBreaker = registry.circuitBreaker("my");
+        circuitBreaker = registry.circuitBreaker("myCircuitBreaker");
     }
 
     @Override
     public Result invoke(Invoker<?> invoker, Invocation invocation) throws 
RpcException {
+        System.out.println("**************** enter CircuitBreaker 
****************");
         long start = System.nanoTime();
         try {
             Result result = invoker.invoke(invocation);
@@ -34,6 +53,7 @@ public class Resilience4jCircuitBreakerFilter implements 
Filter {
             circuitBreaker.onSuccess(durationInNanos);
             return result;
         } catch (Throwable throwable) {
+            System.out.println("************* CircuitBreaker! Try it later! 
*************");
             long durationInNanos = System.nanoTime() - start;
             circuitBreaker.onError(durationInNanos, throwable);
             throw throwable;
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/filter/Resilience4jRateLimiterFilter.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/filter/Resilience4jRateLimiterFilter.java
index 7b795cf..81ae1fd 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/filter/Resilience4jRateLimiterFilter.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/filter/Resilience4jRateLimiterFilter.java
@@ -1,41 +1,60 @@
+/*
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements.  See the NOTICE file distributed with
+ *   this work for additional information regarding copyright ownership.
+ *   The ASF licenses this file to You under the Apache License, Version 2.0
+ *   (the "License"); you may not use this file except in compliance with
+ *   the License.  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
 package org.apache.dubbo.samples.resilience4j.filter;
 
-import io.github.resilience4j.circuitbreaker.CircuitBreaker;
-import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig;
-import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
+import io.github.resilience4j.ratelimiter.RateLimiter;
+import io.github.resilience4j.ratelimiter.RateLimiterConfig;
+import io.github.resilience4j.ratelimiter.RateLimiterRegistry;
 import org.apache.dubbo.rpc.Filter;
 import org.apache.dubbo.rpc.Invocation;
 import org.apache.dubbo.rpc.Invoker;
 import org.apache.dubbo.rpc.Result;
 import org.apache.dubbo.rpc.RpcException;
 
+import java.time.Duration;
+
 /**
  * @author cvictory ON 2018/12/25
  */
-public class Resilience4jCircuitBreakerFilter implements Filter {
+public class Resilience4jRateLimiterFilter implements Filter {
 
-    static CircuitBreaker circuitBreaker;
+    static RateLimiter rateLimiter;
 
     static {
-        CircuitBreakerConfig config = CircuitBreakerConfig.custom()
-                .failureRateThreshold(20)
-                .ringBufferSizeInClosedState(5)
+        RateLimiterConfig config = RateLimiterConfig.custom()
+                .limitRefreshPeriod(Duration.ofMillis(1000))
+                .limitForPeriod(2)
+                .timeoutDuration(Duration.ofMillis(2000))
                 .build();
-        CircuitBreakerRegistry registry = CircuitBreakerRegistry.of(config);
-        circuitBreaker = registry.circuitBreaker("my");
+
+        RateLimiterRegistry rateLimiterRegistry = 
RateLimiterRegistry.of(config);
+        rateLimiter = rateLimiterRegistry.rateLimiter("myRateLimiter");
     }
 
     @Override
     public Result invoke(Invoker<?> invoker, Invocation invocation) throws 
RpcException {
-        long start = System.nanoTime();
         try {
-            Result result = invoker.invoke(invocation);
-            long durationInNanos = System.nanoTime() - start;
-            circuitBreaker.onSuccess(durationInNanos);
-            return result;
+            System.out.println("**************** enter RateLimiter 
****************");
+            RateLimiter.waitForPermission(rateLimiter);
+            return invoker.invoke(invocation);
         } catch (Throwable throwable) {
-            long durationInNanos = System.nanoTime() - start;
-            circuitBreaker.onError(durationInNanos, throwable);
+            System.out.println("************* Rate Limiter! Try it later! 
*************");
             throw throwable;
         }
     }
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/AnnotationServiceImpl.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/AnnotationServiceImpl.java
index cc2e9f7..d2dc0ec 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/AnnotationServiceImpl.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/AnnotationServiceImpl.java
@@ -28,13 +28,13 @@ import 
org.apache.dubbo.samples.resilience4j.api.AnnotationService;
 @Service
 public class AnnotationServiceImpl implements AnnotationService {
 
-//    @HystrixCommand(commandProperties = { @HystrixProperty(name = 
"circuitBreaker.requestVolumeThreshold", value = "10"),
+    //    @HystrixCommand(commandProperties = { @HystrixProperty(name = 
"circuitBreaker.requestVolumeThreshold", value = "10"),
 //                    @HystrixProperty(name = 
"execution.isolation.thread.timeoutInMilliseconds", value = "2000") })
     @Override
     public String sayHello(String name) {
 //        System.out.println("async provider received: " + name);
 //        return "annotation: hello, " + name;
-        throw new RuntimeException("Exception to show hystrix enabled.");
+        return "Hello, " + name + "! this is annotation.";
     }
 
 }
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/CircuitBreakerServiceImpl.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/CircuitBreakerServiceImpl.java
index 29ec47f..1cb0171 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/CircuitBreakerServiceImpl.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/CircuitBreakerServiceImpl.java
@@ -1,7 +1,15 @@
 package org.apache.dubbo.samples.resilience4j.impl;
 
+import org.apache.dubbo.config.annotation.Service;
+import org.apache.dubbo.samples.resilience4j.api.CircuitBreakerService;
+
 /**
  * @author cvictory ON 2018/12/26
  */
-public class CircuitBreakerServiceImpl {
+@Service
+public class CircuitBreakerServiceImpl implements CircuitBreakerService {
+    @Override
+    public String say(String name) {
+        throw new RuntimeException("Exception to show resilience enabled.");
+    }
 }
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/RateLimiterServiceImpl.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/RateLimiterServiceImpl.java
index 32bea46..c36a07f 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/RateLimiterServiceImpl.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/RateLimiterServiceImpl.java
@@ -1,7 +1,15 @@
 package org.apache.dubbo.samples.resilience4j.impl;
 
+import org.apache.dubbo.config.annotation.Service;
+import org.apache.dubbo.samples.resilience4j.api.RateLimiterService;
+
 /**
- * @author cvictory ON 2018/12/26
+ * 2018/12/26
  */
-public class RateLimiterServiceImpl {
+@Service
+public class RateLimiterServiceImpl implements RateLimiterService {
+    @Override
+    public String say(String name, String value) {
+        return "Hello " + name + ", this is rateLimiter. The value is :" + 
value;
+    }
 }
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
index e69de29..730f065 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/resources/META-INF/dubbo/org.apache.dubbo.rpc.Filter
@@ -0,0 +1,2 @@
+circuitBreaker=org.apache.dubbo.samples.resilience4j.filter.Resilience4jCircuitBreakerFilter
+rateLimiter=org.apache.dubbo.samples.resilience4j.filter.Resilience4jRateLimiterFilter
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/resources/spring/dubbo-consumer.properties
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/resources/spring/dubbo-consumer.properties
index 96ab667..5ebcaad 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/resources/spring/dubbo-consumer.properties
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/resources/spring/dubbo-consumer.properties
@@ -6,17 +6,18 @@
 #   The ASF licenses this file to You under the Apache License, Version 2.0
 #   (the "License"); you may not use this file except in compliance with
 #   the License.  You may obtain a copy of the License at
-#  
+#
 #       http://www.apache.org/licenses/LICENSE-2.0
-#  
+#
 #   Unless required by applicable law or agreed to in writing, software
 #   distributed under the License is distributed on an "AS IS" BASIS,
 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 #   See the License for the specific language governing permissions and
 #   limitations under the License.
-#  
+#
 #
 
 dubbo.application.name=annotation-consumer
 dubbo.registry.address=zookeeper://127.0.0.1:2181
-dubbo.consumer.timeout=3000
\ No newline at end of file
+dubbo.consumer.timeout=3000
+dubbo.consumer.filter=circuitBreaker
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/resources/spring/dubbo-provider.properties
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/resources/spring/dubbo-provider.properties
index 51fccca..9331899 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/resources/spring/dubbo-provider.properties
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/resources/spring/dubbo-provider.properties
@@ -6,18 +6,20 @@
 #   The ASF licenses this file to You under the Apache License, Version 2.0
 #   (the "License"); you may not use this file except in compliance with
 #   the License.  You may obtain a copy of the License at
-#  
+#
 #       http://www.apache.org/licenses/LICENSE-2.0
-#  
+#
 #   Unless required by applicable law or agreed to in writing, software
 #   distributed under the License is distributed on an "AS IS" BASIS,
 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 #   See the License for the specific language governing permissions and
 #   limitations under the License.
-#  
+#
 #
 
 dubbo.application.name=annotation-provider
 dubbo.registry.address=zookeeper://127.0.0.1:2181
 dubbo.protocol.name=dubbo
-dubbo.protocol.port=20880
\ No newline at end of file
+dubbo.protocol.port=20880
+dubbo.provider.timeout=1000
+dubbo.provider.filter=rateLimiter
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/README.md 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/README.md
index 12c735e..e938b7b 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/README.md
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/README.md
@@ -2,12 +2,12 @@
 
 ### Start Provider
 
-Run `org.apache.dubbo.samples.annotation.AnnotationProvider`
+Run `AnnotationProvider`
 
 
 ### Start Consumer
 
-Run `org.apache.dubbo.samples.annotation.AnnotationConsumer`
+Run `AnnotationConsumer`
 
 ### Result
 
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jBootAnnotationConsumer.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jBootAnnotationConsumer.java
index 78e63e9..d6ac170 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jBootAnnotationConsumer.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jBootAnnotationConsumer.java
@@ -30,7 +30,7 @@ import org.springframework.context.annotation.PropertySource;
 /**
  * CallbackConsumer
  */
-public class AnnotationConsumer {
+public class Resilience4jBootAnnotationConsumer {
 
     public static void main(String[] args) throws Exception {
         AnnotationConfigApplicationContext context = new 
AnnotationConfigApplicationContext(ConsumerConfiguration.class);
diff --git 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jBootAnnotationProvider.java
 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jBootAnnotationProvider.java
index be7715d..c789eca 100644
--- 
a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jBootAnnotationProvider.java
+++ 
b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jBootAnnotationProvider.java
@@ -31,7 +31,7 @@ import org.springframework.context.annotation.PropertySource;
 /**
  * MergeProvider
  */
-public class AnnotationProvider {
+public class Resilience4jBootAnnotationProvider {
 
     public static void main(String[] args) throws Exception {
         new EmbeddedZooKeeper(2181, false).start();

Reply via email to