diff --git a/labx-04/labx-04-sca-sentinel-feign-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/fallback/DemoProviderFeignClientFallbackFactory.java b/labx-04/labx-04-sca-sentinel-feign-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/fallback/DemoProviderFeignClientFallbackFactory.java index 6c39868c..63b9bd9d 100644 --- a/labx-04/labx-04-sca-sentinel-feign-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/fallback/DemoProviderFeignClientFallbackFactory.java +++ b/labx-04/labx-04-sca-sentinel-feign-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/fallback/DemoProviderFeignClientFallbackFactory.java @@ -24,6 +24,7 @@ public class DemoProviderFeignClientFallbackFactory implements FallbackFactory + + + labx-04 + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + labx-04-sca-sentinel-resttemplate-consumer + + + 1.8 + 1.8 + 2.2.4.RELEASE + Hoxton.SR1 + 2.2.0.RELEASE + + + + + + + org.springframework.boot + spring-boot-starter-parent + ${spring.boot.version} + pom + import + + + org.springframework.cloud + spring-cloud-dependencies + ${spring.cloud.version} + pom + import + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + ${spring.cloud.alibaba.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + diff --git a/labx-04/labx-04-sca-sentinel-resttemplate-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/DemoConsumerApplication.java b/labx-04/labx-04-sca-sentinel-resttemplate-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/DemoConsumerApplication.java new file mode 100644 index 00000000..8b9b9aed --- /dev/null +++ b/labx-04/labx-04-sca-sentinel-resttemplate-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/DemoConsumerApplication.java @@ -0,0 +1,13 @@ +package cn.iocoder.springcloudalibaba.labx04.sentineldemo.provider; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class DemoConsumerApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoConsumerApplication.class, args); + } + +} diff --git a/labx-04/labx-04-sca-sentinel-resttemplate-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/config/RestTemplateConfiguration.java b/labx-04/labx-04-sca-sentinel-resttemplate-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/config/RestTemplateConfiguration.java new file mode 100644 index 00000000..6f68b22a --- /dev/null +++ b/labx-04/labx-04-sca-sentinel-resttemplate-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/config/RestTemplateConfiguration.java @@ -0,0 +1,17 @@ +package cn.iocoder.springcloudalibaba.labx04.sentineldemo.provider.config; + +import com.alibaba.cloud.sentinel.annotation.SentinelRestTemplate; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class RestTemplateConfiguration { + + @Bean + @SentinelRestTemplate + public RestTemplate restTemplate() { + return new RestTemplate(); + } + +} diff --git a/labx-04/labx-04-sca-sentinel-resttemplate-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/controller/ConsumerController.java b/labx-04/labx-04-sca-sentinel-resttemplate-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/controller/ConsumerController.java new file mode 100644 index 00000000..ea116288 --- /dev/null +++ b/labx-04/labx-04-sca-sentinel-resttemplate-consumer/src/main/java/cn/iocoder/springcloudalibaba/labx04/sentineldemo/provider/controller/ConsumerController.java @@ -0,0 +1,21 @@ +package cn.iocoder.springcloudalibaba.labx04.sentineldemo.provider.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +@RestController +@RequestMapping("/consumer") +public class ConsumerController { + + @Autowired + private RestTemplate restTemplate; + + @GetMapping("/echo") + public String echo() { + return restTemplate.getForObject("http://127.0.0.1:8080/demo/echo", String.class); + } + +} diff --git a/labx-04/labx-04-sca-sentinel-resttemplate-consumer/src/main/resources/application.yaml b/labx-04/labx-04-sca-sentinel-resttemplate-consumer/src/main/resources/application.yaml new file mode 100644 index 00000000..f784e3ae --- /dev/null +++ b/labx-04/labx-04-sca-sentinel-resttemplate-consumer/src/main/resources/application.yaml @@ -0,0 +1,16 @@ +spring: + application: + name: demo-consumer + + cloud: + # Sentinel 配置项,对应 SentinelProperties 配置属性类 + sentinel: + enabled: true # 是否开启。默认为 true 开启 + eager: true # 是否饥饿加载。默认为 false 关闭 + transport: + dashboard: 127.0.0.1:7070 # Sentinel 控制台地址 + filter: + url-patterns: /** # 拦截请求的地址。默认为 /* + +server: + port: 8081 diff --git a/labx-04/pom.xml b/labx-04/pom.xml index 7621746e..8c697afe 100644 --- a/labx-04/pom.xml +++ b/labx-04/pom.xml @@ -19,6 +19,7 @@ labx-04-sca-sentinel-file-provider labx-04-sca-sentinel-feign-consumer + labx-04-sca-sentinel-resttemplate-consumer