项目架构如下:

  【SpringCloud】Spring Cloud Alibaba 之 Sentinel @SentinelResource使用(三十三)

项目搭建

  参考:【SpringCloud】Spring Cloud Alibaba 之 Sentinel哨兵介绍入门(二十九) 

1、搭建一个Nacos服务

  参考项目搭建,用于做项目的注册中心及配置中心,并启动

2、搭建一个Sentinel控制台

  参考项目搭建,并启动

3、搭建2个nacos-payment-provider服务

  参考项目搭建,springcloud-provider-sentinel-payment9003 和 springcloud-provider-sentinel-payment9004 项目

  【SpringCloud】Spring Cloud Alibaba 之 Sentinel @SentinelResource使用(三十三)

  项目中PaymentController,如下:

 1 @RestController
 2 public class PaymentController {
 3     @Value("${server.port}")
 4     private String serverPort;
 5 
 6     public static HashMap<Long, Payment> hashMap = new HashMap<Long, Payment>();
 7 
 8     static {
 9         hashMap.put(1L, new Payment(1L, "aaaaaa"));
10         hashMap.put(2L, new Payment(2L, "bbbbbb"));
11         hashMap.put(3L, new Payment(3L, "cccccc"));
12     }
13 
14     @GetMapping(value = "/paymentSQL/{id}")
15     public CommonResult<Payment> paymentSQL(@PathVariable("id") Long id) {
16         Payment payment = hashMap.get(id);
17         CommonResult<Payment> result = new CommonResult<Payment>(200, "from server port : " + serverPort, payment);
18         return result;
19     }
20 }

  项目中有2个实体类,CommonResult实体类如下:

 1 @Data
 2 @AllArgsConstructor
 3 @NoArgsConstructor
 4 public class CommonResult<T> {
 5 
 6     private int code;
 7     private String msg;
 8     private T data;
 9 
10     public CommonResult(int code, String msg) {
11         this.code = code;
12         this.msg = msg;
13     }
14 }

  Payment实体类

1 @Data
2 @AllArgsConstructor
3 @NoArgsConstructor
4 public class Payment {
5     private Long id;
6     private String serial;
7 }

  然后分别启动2个服务

3、搭建1个springcloud-consumer-sentinel-order7994服务(调用者)

  【SpringCloud】Spring Cloud Alibaba 之 Sentinel @SentinelResource使用(三十三)

  a、pom文件如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <parent>
 6         <artifactId>test-springcloud</artifactId>
 7         <groupId>com.test</groupId>
 8         <version>1.0-SNAPSHOT</version>
 9     </parent>
10     <modelVersion>4.0.0</modelVersion>
11 
12     <artifactId>springcloud-consumer-sentinel-order7994</artifactId>
13 
14     <dependencies>
15 
16         <!-- alibaba nacos sentinel -->
17         <dependency>
18             <groupId>com.alibaba.cloud</groupId>
19             <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
20             <version>2.2.1.RELEASE</version>
21             <exclusions>
22                 <exclusion>
23                     <groupId>com.fasterxml.jackson.dataformat</groupId>
24                     <artifactId>jackson-dataformat-xml</artifactId>
25                 </exclusion>
26             </exclusions>
27         </dependency>
28 
29         <!-- alibaba nacos -->
30         <dependency>
31             <groupId>com.alibaba.cloud</groupId>
32             <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
33         </dependency>
34 
35         <!-- openfeign -->
36         <dependency>
37             <groupId>org.springframework.cloud</groupId>
38             <artifactId>spring-cloud-starter-openfeign</artifactId>
39         </dependency>
40 
41         <!-- spring boot -->
42         <dependency>
43             <groupId>org.springframework.boot</groupId>
44             <artifactId>spring-boot-starter-web</artifactId>
45         </dependency>
46         <dependency>
47             <groupId>org.springframework.boot</groupId>
48             <artifactId>spring-boot-starter-actuator</artifactId>
49         </dependency>
50         <dependency>
51             <groupId>org.springframework.boot</groupId>
52             <artifactId>spring-boot-devtools</artifactId>
53             <scope>runtime</scope>
54             <optional>true</optional>
55         </dependency>
56         <dependency>
57             <groupId>org.projectlombok</groupId>
58             <artifactId>lombok</artifactId>
59             <optional>true</optional>
60         </dependency>
61         <dependency>
62             <groupId>org.springframework.boot</groupId>
63             <artifactId>spring-boot-starter-test</artifactId>
64             <scope>test</scope>
65         </dependency>
66 
67     </dependencies>
68 </project>
View Code

相关文章: