Sentinel初始化工程演示
通过一个案例来让大家了解Sentinel的初始化演示,现在我们需要做几件事:
- 启动本地Nacos: 8848
- 创建新的Module:cloudalibaba-sentinel-service8401
- 启动Sentinel服务:8080
- 启动sentinel微服务8401 (第二步)
- 启动8401微服务后查看Sentinel控制台
搭建Sentinel项目
- 创建项目cloudalibaba-sentinel-service8401
- 导入依赖:
<!-- Nacos客户端依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- sentinel依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
配置yaml文件,目的是让当前8401注册进Nacos,然后被Sentinel8080进行监控
server:
port: 8401
spring:
application:
name: cloudalibaba-sentinel-service
cloud:
nacos:
discovery:
server-addr: localhost:8848
sentinel:
transport:
# 配置Sentinel dashboard地址
dashboard: localhost:8080
# 默认8719端口,键入被占用会自动从8719+1,直到找到未被占用的端口
port: 8719
management:
endpoints:
web:
exposure:
include: '*'
3.编写FlowLimitController
@RestController
public class FlowLimitController {
@GetMapping("/testA")
public String testA(){
return "-----testA";
}
@GetMapping("/testB")
public String testB(){
return "-----testB";
}
}
测试
- 当以上的这些配置配置好以后,我们就可以进行测试了,那我们的测试方式就是,首先保证Nacos和Sentinel都是启动状态,然后再来启动项目,按照我们的理解这个时候,就应该在Sentinel的dashboard上能体现出它监控的服务,但是此时并没有,原因是因为Sentinel本身采用的是懒加载(我个人的理解是没有调用的服务,也没必要去监控)机制,所以我们需要首先访问服务对应的接口,Sentinel才能工作。
http://localhost:8401/testA http://localhost:8401/testB
- 访问之后我们来查看Sentinel的dashboard:
首先将服务注册到nacos,并开启对业务的调用,观察监控
sentinel最好是与nacos搭配使用,sentinel就是对nacos调用的流量监控