springcloud集成Sentinel
时间: 2023-10-21 20:00:40 浏览: 161
Spring Cloud集成Sentinel非常简单,只需要添加Sentinel和Sentinel Dashboard的依赖,然后在启动类上加上`@EnableCircuitBreaker`注解即可。下面我们来详细介绍一下整个过程。
1. 添加依赖
在pom.xml文件中添加如下依赖:
```xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel-datasource-nacos</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
</dependency>
```
其中,`spring-cloud-starter-alibaba-sentinel`是Sentinel的依赖,`spring-cloud-alibaba-sentinel-datasource-nacos`是Sentinel使用Nacos作为数据源的依赖,`spring-cloud-alibaba-nacos-discovery`是Nacos的依赖。
2. 启用Sentinel
在启动类上添加`@EnableCircuitBreaker`注解,启用Sentinel:
```java
@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
3. 配置Sentinel
在application.yml文件中添加如下配置:
```yaml
spring:
application:
name: service-provider
cloud:
sentinel:
transport:
dashboard: localhost:8080
datasource:
ds1:
nacos:
server-addr: localhost:8848
dataId: ${spring.application.name}-flow-rules
groupId: DEFAULT_GROUP
rule-type: flow
```
其中,`transport.dashboard`配置Sentinel Dashboard的地址,`datasource`配置Sentinel使用Nacos作为数据源,`nacos.server-addr`配置Nacos的地址,`dataId`指定流控规则的Data ID,`groupId`指定Nacos的Group ID,`rule-type`指定规则类型。
4. 配置Sentinel Dashboard
下载Sentinel Dashboard,启动Sentinel Dashboard:
```bash
java -jar sentinel-dashboard-1.8.1.jar
```
访问http://localhost:8080即可查看Sentinel Dashboard。
5. 配置流控规则
在Nacos中添加流控规则。以service-provider服务为例,添加Data ID为service-provider-flow-rules的配置项,内容为:
```json
[
{
"resource": "hello",
"count": 3.0,
"grade": 1,
"limitApp": "default",
"strategy": 0,
"controlBehavior": 0,
"clusterMode": false
}
]
```
其中,`resource`指定资源名称,`count`指定阈值,`grade`指定流控模式,`limitApp`指定流控针对的调用来源,`strategy`指定流控策略,`controlBehavior`指定流控效果,`clusterMode`指定是否为集群模式。
6. 测试
启动服务提供者和服务消费者,访问http://localhost:8081/hello,即可触发流控规则,Sentinel会阻止请求并返回限流信息。
以上就是Spring Cloud集成Sentinel的整个过程,希望对你有所帮助。
阅读全文