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();