You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@dubbo.apache.org by vi...@apache.org on 2018/12/26 11:04:16 UTC

[incubator-dubbo-samples] branch samples-for-2.7.0-SNAPSHOT updated (af4ad3a -> 9061f26)

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

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


    from af4ad3a  refactor class name
     new 7e6828b  fix hystrix issue, edit resilience4j project
     new 9061f26  fix hystrix issue, edit resilience4j project

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../hystrix/annotation/EmbeddedZooKeeper.java      | 255 ---------------------
 .../annotation/AnnotationConsumer.java             |   8 +-
 .../annotation/AnnotationProvider.java             |   4 +-
 .../simple/annotation}/EmbeddedZooKeeper.java      |  12 +-
 .../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              |   2 +-
 .../annotation/ZKTools.java                        |   2 +-
 .../annotation/action/AnnotationAction.java        |   4 +-
 .../annotation/api/AnnotationService.java          |   2 +-
 .../annotation/impl/AnnotationServiceImpl.java     |   4 +-
 .../hystrix/annotation/EmbeddedZooKeeper.java      | 250 --------------------
 .../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            |   4 +-
 .../Resilience4jAnnotationProvider.java            |  17 +-
 .../resilience4j/action/AnnotationAction.java      |  48 +++-
 .../resilience4j/api/CircuitBreakerService.java    |  22 +-
 .../resilience4j/api/RateLimiterService.java       |  22 +-
 .../filter/Resilience4jCircuitBreakerFilter.java   |  22 +-
 .../filter/Resilience4jRateLimiterFilter.java      |  52 +++--
 .../resilience4j/impl/AnnotationServiceImpl.java   |   4 +-
 .../impl/CircuitBreakerServiceImpl.java            |  30 ++-
 .../resilience4j/impl/RateLimiterServiceImpl.java  |  30 ++-
 .../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 +-
 .../resilience4j/action/AnnotationAction.java      |   2 -
 dubbo-samples-resilience4j/pom.xml                 |   2 +-
 44 files changed, 287 insertions(+), 609 deletions(-)
 delete mode 100644 dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/EmbeddedZooKeeper.java
 rename dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/{hystrix => simple}/annotation/AnnotationConsumer.java (86%)
 rename dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/{hystrix => simple}/annotation/AnnotationProvider.java (93%)
 copy {dubbo-samples-generic-call/src/main/java/org/apache/dubbo/samples/generic/call => dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/simple/annotation}/EmbeddedZooKeeper.java (99%)
 rename dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/{hystrix => simple}/annotation/action/AnnotationAction.java (90%)
 rename dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/{hystrix => simple}/annotation/api/AnnotationService.java (94%)
 rename dubbo-samples-annotation/src/main/java/org/apache/dubbo/samples/{hystrix => simple}/annotation/impl/AnnotationServiceImpl.java (89%)
 rename dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/{hystrix => configcenter}/annotation/AnnotationConsumer.java (84%)
 rename dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/{hystrix => configcenter}/annotation/AnnotationProvider.java (92%)
 copy {dubbo-samples-simplified-registry/dubbo-samples-simplified-registry-annotation/src/main/java/org/apache/dubbo/samples/simplified => dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/configcenter}/annotation/EmbeddedZooKeeper.java (99%)
 rename dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/{hystrix => configcenter}/annotation/ZKTools.java (98%)
 rename dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/{hystrix => configcenter}/annotation/action/AnnotationAction.java (89%)
 rename dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/{hystrix => configcenter}/annotation/api/AnnotationService.java (93%)
 rename dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/{hystrix => configcenter}/annotation/impl/AnnotationServiceImpl.java (89%)
 delete mode 100644 dubbo-samples-configcenter/dubbo-samples-configcenter-annotation/src/main/java/org/apache/dubbo/samples/hystrix/annotation/EmbeddedZooKeeper.java


[incubator-dubbo-samples] 02/02: fix hystrix issue, edit resilience4j project

Posted by vi...@apache.org.
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 9061f26f4b40a59e30f3ded6961d9dcece1d021a
Merge: 7e6828b af4ad3a
Author: cvictory <sh...@gmail.com>
AuthorDate: Wed Dec 26 19:03:54 2018 +0800

    fix hystrix issue, edit resilience4j project

 .../resilience4j/Resilience4jAnnotationConsumer.java |  1 +
 .../resilience4j/Resilience4jAnnotationProvider.java |  1 +
 .../resilience4j/action/AnnotationAction.java        |  3 ---
 .../resilience4j/api/CircuitBreakerService.java      | 18 ++++++++++++++++++
 .../samples/resilience4j/api/RateLimiterService.java | 18 ++++++++++++++++++
 .../filter/Resilience4jCircuitBreakerFilter.java     |  2 +-
 .../filter/Resilience4jRateLimiterFilter.java        |  4 +++-
 .../resilience4j/impl/CircuitBreakerServiceImpl.java | 20 +++++++++++++++++++-
 .../resilience4j/impl/RateLimiterServiceImpl.java    | 18 ++++++++++++++++++
 .../resilience4j/action/AnnotationAction.java        |  2 --
 dubbo-samples-resilience4j/pom.xml                   |  2 +-
 11 files changed, 80 insertions(+), 9 deletions(-)

diff --cc dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/Resilience4jAnnotationProvider.java
index 6b213cb,4e6037b..84e725d
--- 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,8 -20,11 +20,9 @@@
  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.PropertySource;
  
diff --cc dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/action/AnnotationAction.java
index 448454e,785c9eb..80fe535
--- 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
@@@ -20,12 -20,9 +20,9 @@@
  package org.apache.dubbo.samples.resilience4j.action;
  
  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;
  
  /**
diff --cc dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/api/CircuitBreakerService.java
index ae14529,8c824ff..e701713
--- 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,3 -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.api;
  
  /**
diff --cc dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/api/RateLimiterService.java
index 3c37fbf,3383625..0025d20
--- 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,3 -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.api;
  
  /**
diff --cc dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/filter/Resilience4jCircuitBreakerFilter.java
index 1dcd7bc,7b795cf..bfc7c10
--- 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
@@@ -45,7 -27,6 +45,7 @@@ public class Resilience4jCircuitBreaker
  
      @Override
      public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
-         System.out.println("**************** enter CircuitBreaker ****************");
++        System.out.println("**************** Enter CircuitBreaker ****************");
          long start = System.nanoTime();
          try {
              Result result = invoker.invoke(invocation);
diff --cc dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/filter/Resilience4jRateLimiterFilter.java
index 81ae1fd,f302a1a..65ce4bf
--- 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
@@@ -27,8 -6,10 +27,10 @@@ import org.apache.dubbo.rpc.Invoker
  import org.apache.dubbo.rpc.Result;
  import org.apache.dubbo.rpc.RpcException;
  
 -import io.github.resilience4j.circuitbreaker.CircuitBreaker;
 -import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig;
 -import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry;
 +import java.time.Duration;
 +
++
+ 
  /**
   * @author cvictory ON 2018/12/25
   */
@@@ -49,12 -28,15 +51,12 @@@ public class Resilience4jRateLimiterFil
  
      @Override
      public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
 -        long start = System.nanoTime();
          try {
-             System.out.println("**************** enter RateLimiter ****************");
 -            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 --cc dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/CircuitBreakerServiceImpl.java
index 1cb0171,29ec47f..9853d35
--- 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,15 -1,7 +1,33 @@@
++/*
++ *
++ *   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.impl;
  
 +import org.apache.dubbo.config.annotation.Service;
 +import org.apache.dubbo.samples.resilience4j.api.CircuitBreakerService;
 +
  /**
-- * @author cvictory ON 2018/12/26
++ * 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 --cc dubbo-samples-resilience4j/dubbo-samples-resilience4j-filter/src/main/java/org/apache/dubbo/samples/resilience4j/impl/RateLimiterServiceImpl.java
index c36a07f,32bea46..bccaafc
--- 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,15 -1,7 +1,33 @@@
++/*
++ *
++ *   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.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 --cc dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/src/main/java/org/apache/dubbo/samples/resilience4j/action/AnnotationAction.java
index 785c9eb,785c9eb..c70051a
--- a/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/src/main/java/org/apache/dubbo/samples/resilience4j/action/AnnotationAction.java
+++ b/dubbo-samples-resilience4j/dubbo-samples-resilience4j-springboot2/src/main/java/org/apache/dubbo/samples/resilience4j/action/AnnotationAction.java
@@@ -20,8 -20,8 +20,6 @@@
  package org.apache.dubbo.samples.resilience4j.action;
  
  import org.apache.dubbo.config.annotation.Reference;
--
--
  import org.apache.dubbo.samples.resilience4j.api.AnnotationService;
  import org.springframework.stereotype.Component;
  
diff --cc dubbo-samples-resilience4j/pom.xml
index 404ea6f,404ea6f..79b9115
--- a/dubbo-samples-resilience4j/pom.xml
+++ b/dubbo-samples-resilience4j/pom.xml
@@@ -32,7 -32,7 +32,7 @@@
      <packaging>pom</packaging>
      <modules>
          <module>dubbo-samples-resilience4j-filter</module>
--        <module>dubbo-samples-resilience4j-springboot2</module>
++        <!--<module>dubbo-samples-resilience4j-springboot2</module>-->
      </modules>
  
      <properties>


[incubator-dubbo-samples] 01/02: fix hystrix issue, edit resilience4j project

Posted by vi...@apache.org.
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 <sh...@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();