This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-samples.git
The following commit(s) were added to refs/heads/master by this push:
new bacc30280 Update sentinel sample (#1123)
bacc30280 is described below
commit bacc3028066977e7c0a7b8a0fa266096a108abe6
Author: Ken Liu <[email protected]>
AuthorDate: Fri Apr 5 15:32:53 2024 +0800
Update sentinel sample (#1123)
---
1-basic/dubbo-samples-api-idl/pom.xml | 19 +++++
.../dubbo/samples/tri/unary/TriUnaryClient.java | 3 +
.../dubbo/samples/tri/unary/TriUnaryServer.java | 2 +
1-basic/dubbo-samples-api/pom.xml | 19 +++++
.../apache/dubbo/samples/provider/Application.java | 2 +
.../dubbo-samples-sentinel/case-configuration.yml | 4 +-
.../dubbo-samples-sentinel/case-versions.conf | 2 +-
.../apache/dubbo/samples/sentinel/DemoService.java | 6 ++
.../dubbo-samples-sentinel-consumer/pom.xml | 15 +++-
.../samples/consumer/ConsumerApplication.java | 93 ++++++++++++++++++++++
.../src/main/resources/application.properties | 6 --
.../dubbo-samples-sentinel-provider/pom.xml | 2 +-
.../dubbo/samples/provider/DemoServiceImpl.java | 16 ++++
.../samples/provider/ProviderApplication.java | 44 +++++++++-
.../src/main/resources/application.properties | 8 +-
15 files changed, 220 insertions(+), 21 deletions(-)
diff --git a/1-basic/dubbo-samples-api-idl/pom.xml
b/1-basic/dubbo-samples-api-idl/pom.xml
index 60ee2a5af..0f65a4e8c 100644
--- a/1-basic/dubbo-samples-api-idl/pom.xml
+++ b/1-basic/dubbo-samples-api-idl/pom.xml
@@ -58,11 +58,30 @@
<version>${protobuf-java.version}</version>
</dependency>
+ <!-- SLF4J API -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.30</version>
+ </dependency>
+ <!-- Log4j2 to SLF4J Bridge -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j2.version}</version>
</dependency>
+ <!-- Log4j2 Core -->
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>${log4j2.version}</version>
+ </dependency>
+ <!-- Log4j2 API -->
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <version>${log4j2.version}</version>
+ </dependency>
</dependencies>
<build>
diff --git
a/1-basic/dubbo-samples-api-idl/src/main/java/org/apache/dubbo/samples/tri/unary/TriUnaryClient.java
b/1-basic/dubbo-samples-api-idl/src/main/java/org/apache/dubbo/samples/tri/unary/TriUnaryClient.java
index afa2d3cfa..48048020d 100644
---
a/1-basic/dubbo-samples-api-idl/src/main/java/org/apache/dubbo/samples/tri/unary/TriUnaryClient.java
+++
b/1-basic/dubbo-samples-api-idl/src/main/java/org/apache/dubbo/samples/tri/unary/TriUnaryClient.java
@@ -19,6 +19,7 @@ package org.apache.dubbo.samples.tri.unary;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
+import org.apache.dubbo.config.bootstrap.builders.ApplicationBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -30,6 +31,8 @@ public class TriUnaryClient {
public static void main(String[] args) throws IOException {
DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+
bootstrap.application(ApplicationBuilder.newBuilder().name("dubbo-samples-api-idl-client").logger("slf4j").build());
+
ReferenceConfig<Greeter> ref = new ReferenceConfig<>();
ref.setInterface(Greeter.class);
ref.setUrl("tri://localhost:50052");
diff --git
a/1-basic/dubbo-samples-api-idl/src/main/java/org/apache/dubbo/samples/tri/unary/TriUnaryServer.java
b/1-basic/dubbo-samples-api-idl/src/main/java/org/apache/dubbo/samples/tri/unary/TriUnaryServer.java
index afbf1586d..90f5c4886 100644
---
a/1-basic/dubbo-samples-api-idl/src/main/java/org/apache/dubbo/samples/tri/unary/TriUnaryServer.java
+++
b/1-basic/dubbo-samples-api-idl/src/main/java/org/apache/dubbo/samples/tri/unary/TriUnaryServer.java
@@ -21,6 +21,7 @@ import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.config.ProtocolConfig;
import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
+import org.apache.dubbo.config.bootstrap.builders.ApplicationBuilder;
import java.io.IOException;
@@ -32,6 +33,7 @@ public class TriUnaryServer {
service.setRef(new GreeterImpl("tri-stub"));
DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+
bootstrap.application(ApplicationBuilder.newBuilder().name("dubbo-samples-api-idl-server").logger("slf4j").build());
bootstrap.protocol(new ProtocolConfig(CommonConstants.TRIPLE, 50052))
.service(service)
.start().await();
diff --git a/1-basic/dubbo-samples-api/pom.xml
b/1-basic/dubbo-samples-api/pom.xml
index e705c4d5b..6363dbabc 100644
--- a/1-basic/dubbo-samples-api/pom.xml
+++ b/1-basic/dubbo-samples-api/pom.xml
@@ -52,11 +52,30 @@
<version>${dubbo.version}</version>
</dependency>
+ <!-- SLF4J API -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.30</version>
+ </dependency>
+ <!-- Log4j2 to SLF4J Bridge -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j2.version}</version>
</dependency>
+ <!-- Log4j2 Core -->
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>${log4j2.version}</version>
+ </dependency>
+ <!-- Log4j2 API -->
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <version>${log4j2.version}</version>
+ </dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
diff --git
a/1-basic/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/provider/Application.java
b/1-basic/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/provider/Application.java
index 4018c11bc..e0e0c4d52 100644
---
a/1-basic/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/provider/Application.java
+++
b/1-basic/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/provider/Application.java
@@ -18,6 +18,7 @@
package org.apache.dubbo.samples.provider;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
+import org.apache.dubbo.config.bootstrap.builders.ApplicationBuilder;
import org.apache.dubbo.config.bootstrap.builders.ProtocolBuilder;
import org.apache.dubbo.config.bootstrap.builders.ServiceBuilder;
import org.apache.dubbo.samples.api.GreetingsService;
@@ -25,6 +26,7 @@ import org.apache.dubbo.samples.api.GreetingsService;
public class Application {
public static void main(String[] args) {
DubboBootstrap.getInstance()
+
.application(ApplicationBuilder.newBuilder().name("dubbo-samples-api").logger("slf4j").build())
.protocol(ProtocolBuilder.newBuilder().name("tri").port(50052).build())
.service(ServiceBuilder.newBuilder().interfaceClass(GreetingsService.class).ref(new
GreetingsServiceImpl()).build())
.start()
diff --git a/4-governance/dubbo-samples-sentinel/case-configuration.yml
b/4-governance/dubbo-samples-sentinel/case-configuration.yml
index efd50a846..eb9f8c692 100644
--- a/4-governance/dubbo-samples-sentinel/case-configuration.yml
+++ b/4-governance/dubbo-samples-sentinel/case-configuration.yml
@@ -36,7 +36,7 @@ services:
waitPortsBeforeRun:
- nacos:8848
checkPorts:
- - 20880
+ - 50051
depends_on:
- nacos
@@ -50,7 +50,7 @@ services:
- nacos.port=8848
waitPortsBeforeRun:
- nacos:8848
- - dubbo-samples-sentinel-provider:20880
+ - dubbo-samples-sentinel-provider:50051
depends_on:
- nacos
- dubbo-samples-sentinel-provider
diff --git a/4-governance/dubbo-samples-sentinel/case-versions.conf
b/4-governance/dubbo-samples-sentinel/case-versions.conf
index 3d18292ed..500e08b13 100644
--- a/4-governance/dubbo-samples-sentinel/case-versions.conf
+++ b/4-governance/dubbo-samples-sentinel/case-versions.conf
@@ -19,6 +19,6 @@
# Supported component versions of the test case
-dubbo.version= [ >= 3.2.0 ]
+dubbo.version= [ >= 3.3.* ]
java.version= [ >= 17 ]
sentinel.version= [ >= 1.8.6 ]
diff --git
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-api/src/main/java/org/apache/dubbo/samples/sentinel/DemoService.java
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-api/src/main/java/org/apache/dubbo/samples/sentinel/DemoService.java
index fc97801c5..2ee66359b 100644
---
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-api/src/main/java/org/apache/dubbo/samples/sentinel/DemoService.java
+++
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-api/src/main/java/org/apache/dubbo/samples/sentinel/DemoService.java
@@ -19,4 +19,10 @@ package org.apache.dubbo.samples.sentinel;
public interface DemoService {
String sayHello(String name);
+
+ String sayHelloAgain(String name);
+
+ String sayHelloConsumerFlowControl(String name);
+
+ String sayHelloConsumerDowngrade(String name);
}
diff --git
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/pom.xml
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/pom.xml
index f579dfc7f..2a682e243 100644
---
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/pom.xml
+++
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/pom.xml
@@ -38,7 +38,8 @@
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <dubbo.version>3.2.6</dubbo.version>
+ <sentinel.version>1.8.6</sentinel.version>
+ <dubbo.version>3.3.0-beta.1</dubbo.version>
<nacos.version>2.2.0</nacos.version>
</properties>
@@ -80,6 +81,18 @@
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
+ <!-- sentinel dependency-->
+ <dependency>
+ <groupId>com.alibaba.csp</groupId>
+ <artifactId>sentinel-apache-dubbo3-adapter</artifactId>
+ <version>${sentinel.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.alibaba.csp</groupId>
+ <artifactId>sentinel-transport-simple-http</artifactId>
+ <version>${sentinel.version}</version>
+ </dependency>
+
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
diff --git
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/src/main/java/org/apache/dubbo/samples/consumer/ConsumerApplication.java
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/src/main/java/org/apache/dubbo/samples/consumer/ConsumerApplication.java
index 732361506..404abaf7f 100644
---
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/src/main/java/org/apache/dubbo/samples/consumer/ConsumerApplication.java
+++
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/src/main/java/org/apache/dubbo/samples/consumer/ConsumerApplication.java
@@ -16,7 +16,16 @@
*/
package org.apache.dubbo.samples.consumer;
+import com.alibaba.csp.sentinel.adapter.dubbo3.config.DubboAdapterGlobalConfig;
+import com.alibaba.csp.sentinel.slots.block.RuleConstant;
+import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule;
+import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
+import
com.alibaba.csp.sentinel.slots.block.degrade.circuitbreaker.CircuitBreakerStrategy;
+import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
+import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
+import com.alibaba.dubbo.rpc.RpcResult;
import org.apache.dubbo.config.annotation.DubboReference;
+import org.apache.dubbo.rpc.AsyncRpcResult;
import org.apache.dubbo.samples.sentinel.DemoService;
import org.slf4j.Logger;
@@ -26,6 +35,10 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
@@ -45,12 +58,19 @@ public class ConsumerApplication {
@Override
public void run(String... args) {
+ // please run triggerProviderFlowControl() or
triggerConsumerFlowControl() separately to verify provider and consumer side
flow control.
+// triggerProviderFlowControl();
+ triggerConsumerFlowControl();
+ }
+
+ private void triggerProviderFlowControl() {
Executors.newScheduledThreadPool(1)
.scheduleAtFixedRate(() -> {
logger.info("Start to call remote.");
for (int i = 0; i < 15; i++) {
try {
String result = demoService.sayHello("dubbo");
+ demoService.sayHelloAgain("dubbo");
logger.info("Call Count:" + i + " Dubbo Remote
Return ======> " + result);
} catch (RuntimeException ex) {
if
(ex.getMessage().contains("SentinelBlockException: FlowException")) {
@@ -62,5 +82,78 @@ public class ConsumerApplication {
}
}, 0, 5000, TimeUnit.MILLISECONDS);
}
+
+ private void triggerConsumerFlowControl() {
+ CountDownLatch latch = new CountDownLatch(5);
+ for (int i = 0; i < 8; i++) {
+ Executors.newFixedThreadPool(1)
+ .submit(() -> {
+ latch.await();
+ while(true) {
+ logger.info("Start to call remote.");
+ try {
+ String result =
demoService.sayHelloConsumerFlowControl("dubbo");
+
demoService.sayHelloConsumerDowngrade("dubbo");
+ logger.info("Call Dubbo Remote Return
======> " + result);
+ }
+ catch (RuntimeException ex) {
+ if
(ex.getMessage().contains("SentinelBlockException: FlowException")) {
+ logger.info("Call Blocked");
+ }
+ else {
+ logger.error("Call Request Failed.",
ex);
+ }
+ }
+ Thread.sleep(5000);
+ }
+ });
+ latch.countDown();
+ }
+ }
}
+
+ @Component
+ static class SentinelConfig implements CommandLineRunner {
+ @Override
+ public void run(String... args) {
+ FlowRule flowRule = new FlowRule();
+
flowRule.setResource("org.apache.dubbo.samples.sentinel.DemoService:sayHelloConsumerFlowControl(java.lang.String)");
+ flowRule.setCount(3);
+ flowRule.setGrade(RuleConstant.FLOW_GRADE_THREAD);
+ FlowRuleManager.loadRules(Collections.singletonList(flowRule));
+ }
+ }
+
+ @Component
+ static class SentinelCallbackConfig implements CommandLineRunner {
+ @Override
+ public void run(String... args) {
+ // Register fallback handler for consumer.
+ // If you only want to handle degrading, you need to
+ // check the type of BlockException.
+ DubboAdapterGlobalConfig.setConsumerFallback((invoker, invocation,
ex) -> {
+ System.out.println("Blocked by Sentinel: " +
ex.getClass().getSimpleName() + ", " + invocation);
+ return
AsyncRpcResult.newDefaultAsyncResult(ex.toRuntimeException(), invocation);
+ });
+ }
+ }
+
+ @Component
+ static class SentinelDowngradeConfig implements CommandLineRunner {
+ @Override
+ public void run(String... args) {
+ List<DegradeRule> rules = new ArrayList<>();
+ DegradeRule rule = new DegradeRule();
+
rule.setResource("org.apache.dubbo.samples.sentinel.DemoService:sayHelloConsumerDowngrade(java.lang.String)");
+ rule.setGrade(CircuitBreakerStrategy.ERROR_RATIO.getType());
+ rule.setCount(0.2); // Threshold is 20% error ratio
+ rule.setMinRequestAmount(3);
+ rule.setStatIntervalMs(10000); // 10s
+ rule.setTimeWindow(10);
+ rules.add(rule);
+ DegradeRuleManager.loadRules(rules);
+ }
+ }
+
+
}
diff --git
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/src/main/resources/application.properties
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/src/main/resources/application.properties
index 2bfc99705..e81778f3d 100644
---
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/src/main/resources/application.properties
+++
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-consumer/src/main/resources/application.properties
@@ -15,10 +15,4 @@
# Specify the application name of Dubbo
dubbo.application.name=sentinel-consumer
-
-# Enable token verification for each invocation
-dubbo.provider.token=true
-
-# Specify the registry address
-# dubbo.registry.address=nacos://localhost:8848?username=nacos&password=nacos
dubbo.registry.address=nacos://${nacos.address:localhost}:8848?username=nacos&password=nacos
diff --git
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/pom.xml
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/pom.xml
index 2513aac36..88dddbf87 100644
---
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/pom.xml
+++
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/pom.xml
@@ -37,7 +37,7 @@
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <dubbo.version>3.2.6</dubbo.version>
+ <dubbo.version>3.3.0-beta.1</dubbo.version>
<nacos.version>2.2.0</nacos.version>
<sentinel.version>1.8.6</sentinel.version>
</properties>
diff --git
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/src/main/java/org/apache/dubbo/samples/provider/DemoServiceImpl.java
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/src/main/java/org/apache/dubbo/samples/provider/DemoServiceImpl.java
index af189382c..badcdea34 100644
---
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/src/main/java/org/apache/dubbo/samples/provider/DemoServiceImpl.java
+++
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/src/main/java/org/apache/dubbo/samples/provider/DemoServiceImpl.java
@@ -25,4 +25,20 @@ public class DemoServiceImpl implements DemoService {
public String sayHello(String name) {
return "hello, "+ name;
}
+
+ @Override
+ public String sayHelloAgain(String name) {
+ return "hello, "+ name;
+ }
+
+ @Override
+ public String sayHelloConsumerFlowControl(String name) {
+ return "hello, "+ name;
+ }
+
+ @Override
+ public String sayHelloConsumerDowngrade(String name) {
+ return "hello, "+ name;
+ }
+
}
diff --git
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/src/main/java/org/apache/dubbo/samples/provider/ProviderApplication.java
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/src/main/java/org/apache/dubbo/samples/provider/ProviderApplication.java
index f107dfd22..14440fd6a 100644
---
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/src/main/java/org/apache/dubbo/samples/provider/ProviderApplication.java
+++
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/src/main/java/org/apache/dubbo/samples/provider/ProviderApplication.java
@@ -16,7 +16,10 @@
*/
package org.apache.dubbo.samples.provider;
+import com.alibaba.csp.sentinel.adapter.dubbo3.config.DubboAdapterGlobalConfig;
+import com.alibaba.dubbo.rpc.RpcResult;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
+import org.apache.dubbo.rpc.AsyncRpcResult;
import org.apache.dubbo.samples.sentinel.DemoService;
import com.alibaba.csp.sentinel.slots.block.RuleConstant;
@@ -37,15 +40,48 @@ public class ProviderApplication {
SpringApplication.run(ProviderApplication.class, args);
}
+ // Service level QOS flow control
@Component
- static class SentinelConfig implements CommandLineRunner {
+ static class SentinelServiceConfig implements CommandLineRunner {
@Override
public void run(String... args) {
// Limit DemoService to 10 QPS
- FlowRule flowRule = new FlowRule(DemoService.class.getName())
- .setCount(10)
- .setGrade(RuleConstant.FLOW_GRADE_QPS);
+ FlowRule flowRule = new FlowRule();
+ // Note: the resource name here is the interface name.
+ flowRule.setResource(DemoService.class.getName());
+ flowRule.setCount(10);
+ flowRule.setLimitApp("default");
+ flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS);
FlowRuleManager.loadRules(Collections.singletonList(flowRule));
}
}
+
+ // Method level QOS flow control
+ @Component
+ static class SentinelMethodConfig implements CommandLineRunner {
+ @Override
+ public void run(String... args) {
+ // Limit DemoService.sayHelloAgain() method to 5 QPS.
+ FlowRule flowRule = new FlowRule();
+ // Note: the resource name here includes the method signature.
+ flowRule.setResource(DemoService.class.getName() +
":sayHelloAgain(java.lang.String)");
+ flowRule.setCount(5);
+ // Note: this will take effect only for the specific consumer
whose app name is "sentinel-consumer".
+ flowRule.setLimitApp("sentinel-consumer");
+ flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS);
+ FlowRuleManager.loadRules(Collections.singletonList(flowRule));
+ }
+ }
+
+ // Set method gets executed when flow control happens.
+ @Component
+ static class SentinelCallbackConfig implements CommandLineRunner {
+ @Override
+ public void run(String... args) {
+ DubboAdapterGlobalConfig.setProviderFallback((invoker, invocation,
ex) -> {
+ System.out.println("Blocked by Sentinel: " +
ex.getClass().getSimpleName() + ", " + invocation);
+ return
AsyncRpcResult.newDefaultAsyncResult(ex.toRuntimeException(), invocation);
+ });
+ }
+ }
}
diff --git
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/src/main/resources/application.properties
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/src/main/resources/application.properties
index f3a48f0bf..ad76681b8 100644
---
a/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/src/main/resources/application.properties
+++
b/4-governance/dubbo-samples-sentinel/dubbo-samples-sentinel-provider/src/main/resources/application.properties
@@ -15,10 +15,6 @@
# Specify the application name of Dubbo
dubbo.application.name=sentinel-provider
-
-# Enable token verification for each invocation
-dubbo.provider.token=true
-
-# Specify the registry address
-# dubbo.registry.address=nacos://localhost:8848?username=nacos&password=nacos
+dubbo.protocol.name=tri
+dubbo.protocol.port=50051
dubbo.registry.address=nacos://${nacos.address:localhost}:8848?username=nacos&password=nacos
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]