From 5995687dd5a87e8585068909acc8ec9fe415fde3 Mon Sep 17 00:00:00 2001 From: fangjian0423 Date: Tue, 26 Mar 2019 16:34:18 +0800 Subject: [PATCH] update sentinel examples --- .../scripts/error.sh | 7 ++++ .../scripts/index.sh | 7 ++++ .../scripts/sleep.sh | 7 ++++ .../cloud/examples/ConsumerApplication.java | 8 +++++ .../cloud/examples/TestController.java | 34 +++++++++++++++++++ .../src/main/resources/application.properties | 6 +++- .../src/main/resources/degraderule.json | 20 +++++++++++ .../cloud/examples/ProviderApplication.java | 23 +++++++++++++ 8 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/scripts/error.sh create mode 100644 spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/scripts/index.sh create mode 100644 spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/scripts/sleep.sh create mode 100644 spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/resources/degraderule.json diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/scripts/error.sh b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/scripts/error.sh new file mode 100644 index 000000000..5602a98de --- /dev/null +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/scripts/error.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +n=1 +while [ $n -le 10 ] +do + echo `curl -s http://localhost:18083/test` + let n++ +done diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/scripts/index.sh b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/scripts/index.sh new file mode 100644 index 000000000..7db176b8e --- /dev/null +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/scripts/index.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +n=1 +while [ $n -le 10 ] +do + echo `curl -s http://localhost:18083/index` + let n++ +done diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/scripts/sleep.sh b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/scripts/sleep.sh new file mode 100644 index 000000000..423c3d15b --- /dev/null +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/scripts/sleep.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +n=1 +while [ $n -le 10 ] +do + echo `curl -s http://localhost:18083/sleep` + let n++ +done diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/ConsumerApplication.java b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/ConsumerApplication.java index 5dfd4eba0..977123123 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/ConsumerApplication.java +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/ConsumerApplication.java @@ -3,6 +3,7 @@ package org.springframework.cloud.alibaba.cloud.examples; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.alibaba.cloud.examples.ConsumerApplication.EchoService; +import org.springframework.cloud.alibaba.sentinel.annotation.SentinelRestTemplate; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -28,6 +29,13 @@ public class ConsumerApplication { return new RestTemplate(); } + @LoadBalanced + @Bean + @SentinelRestTemplate + public RestTemplate restTemplate1() { + return new RestTemplate(); + } + public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/TestController.java b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/TestController.java index 55c751c71..1b1970b86 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/TestController.java +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/TestController.java @@ -18,18 +18,52 @@ public class TestController { @Autowired private RestTemplate restTemplate; + + @Autowired + private RestTemplate restTemplate1; + @Autowired private EchoService echoService; @Autowired private DiscoveryClient discoveryClient; + // @PostConstruct + // public void init() { + // restTemplate1.setErrorHandler(new ResponseErrorHandler() { + // @Override + // public boolean hasError(ClientHttpResponse response) throws IOException { + // return false; + // } + // + // @Override + // public void handleError(ClientHttpResponse response) throws IOException { + // System.err.println("handle error"); + // } + // }); + // } + @RequestMapping(value = "/echo-rest/{str}", method = RequestMethod.GET) public String rest(@PathVariable String str) { return restTemplate.getForObject("http://service-provider/echo/" + str, String.class); } + @RequestMapping(value = "/index", method = RequestMethod.GET) + public String index() { + return restTemplate1.getForObject("http://service-provider", String.class); + } + + @RequestMapping(value = "/test", method = RequestMethod.GET) + public String test() { + return restTemplate1.getForObject("http://service-provider/test", String.class); + } + + @RequestMapping(value = "/sleep", method = RequestMethod.GET) + public String sleep() { + return restTemplate1.getForObject("http://service-provider/sleep", String.class); + } + @RequestMapping(value = "/notFound-feign", method = RequestMethod.GET) public String notFound() { return echoService.notFound(); diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/resources/application.properties b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/resources/application.properties index 02b7ce324..2d260cb2c 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/resources/application.properties +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/resources/application.properties @@ -10,4 +10,8 @@ spring.cloud.sentinel.eager=true spring.cloud.sentinel.datasource.ds1.file.file=classpath: flowrule.json spring.cloud.sentinel.datasource.ds1.file.data-type=json -spring.cloud.sentinel.datasource.ds1.file.rule-type=flow \ No newline at end of file +spring.cloud.sentinel.datasource.ds1.file.rule-type=flow + +spring.cloud.sentinel.datasource.ds2.file.file=classpath: degraderule.json +spring.cloud.sentinel.datasource.ds2.file.data-type=json +spring.cloud.sentinel.datasource.ds2.file.rule-type=degrade \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/resources/degraderule.json b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/resources/degraderule.json new file mode 100644 index 000000000..a090d34e6 --- /dev/null +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/resources/degraderule.json @@ -0,0 +1,20 @@ +[ + { + "resource": "GET:http://service-provider/test", + "count": 0.5, + "grade": 1, + "timeWindow": 30 + }, + { + "resource": "GET:http://service-provider", + "count": 0.5, + "grade": 1, + "timeWindow": 10 + }, + { + "resource": "GET:http://service-provider/sleep", + "count": 20.0, + "grade": 0, + "timeWindow": 30 + } +] \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/ProviderApplication.java b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/ProviderApplication.java index ae090f6e9..5f71f51d6 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/ProviderApplication.java +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/java/org/springframework/cloud/alibaba/cloud/examples/ProviderApplication.java @@ -3,6 +3,8 @@ package org.springframework.cloud.alibaba.cloud.examples; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -22,6 +24,27 @@ public class ProviderApplication { @RestController class EchoController { + + @RequestMapping(value = "/", method = RequestMethod.GET) + public ResponseEntity index() { + return new ResponseEntity("index error", HttpStatus.INTERNAL_SERVER_ERROR); + } + + @RequestMapping(value = "/test", method = RequestMethod.GET) + public ResponseEntity test() { + return new ResponseEntity("error", HttpStatus.INTERNAL_SERVER_ERROR); + } + + @RequestMapping(value = "/sleep", method = RequestMethod.GET) + public String sleep() { + try { + Thread.sleep(1000L); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return "ok"; + } + @RequestMapping(value = "/echo/{string}", method = RequestMethod.GET) public String echo(@PathVariable String string) { return "hello Nacos Discovery " + string;