🎵诗词分享🎵
大江东去,浪淘尽,千古风流人物。
——苏轼《念奴娇·赤壁怀古》
目录
🍿1.Sentinel是什么
🧂2.特点
🧈3.下载
🌭4.sentinel启动
🥓5.实例演示
1.Sentinel是什么
- Sentinel是一个开源的分布式系统的实时监控和故障自愈平台。
- 它由阿里巴巴开源,用于监控和保护云原生应用的稳定性。
- 实时监控应用程序在生产环境中的运行情况。
- 通过实时统计和告警功能检测应用中的错误和异常,并提供自愈功能来保障应用的稳定性和可靠性。
2.特点
- 1.实时监控:实时监控各个微服务的运行情况,包括请求流量、成功率、RT(响应时间)等指标,并提供实时告警功能。
- 2.流量控制:根据设定的流量规则,对请求进行限流,防止系统被过多的请求压垮。
- 3.熔断降级:根据系统的负载情况,自动进行熔断降级,防止故障扩散和影响整个系统的稳定性。
- 4.系统自愈:通过自动的故障自愈机制,自动恢复异常的微服务,保证整个应用的可用性。
3.下载
官网:https://github.com/alibaba/Sentinel/releases/tag/1.7.0
小张提示:如果GitHub打不开,记得更改hosts文件~
4.sentinel启动
- 1.8080端口不要占用
- 2.jdk8环境
- 3.密码:sentinel 账号:sentinel
-
1.直接使用java -jar启动sentinel的jar包
- 2.访问浏览器localhost:8080
- 3.登录
5.实例演示
1.创建工程
- 1.在父工程下创建cloudalibaba-sentinel-service8401
- 2.注意jdk和maven版本
2.加pom
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--springCloud alibaba Naocs-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--持久化-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
<!--Sentinel-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!--openFeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
3.改yml
小张这里的nacos是集群模式
server:
port: 8401
spring:
application:
name: cloudalibaba-sentinel-service
cloud:
nacos:
discovery:
#nacos服务注册中心
server-addr: 192.168.20.50:1111
sentinel:
transport:
#sentinel dashboard地址
dashboard: localhost:8080
#默认8719端口,假如被占用会自动从8719开始依次+1扫描,直至找到未被占用的端口
port: 8719
management:
endpoints:
web:
exposure:
include: '*'
4.主启动类
@SpringBootApplication
@EnableDiscoveryClient
public class MainApp8401 {
public static void main(String[] args) {
SpringApplication.run(MainApp8401.class);
}
}
5.业务类
@RestController
public class FlowLimitController {
@GetMapping("/testA")
public String getTestA(){
return "-----TestA------";
}
@GetMapping("/testB")
public String getTestB(){
return "-----TestB------";
}
}
6.测试
1.启动sentinel和nacos
2.浏览器访问localhost:8080
3.浏览器访问192.168.20.50:1111
注意:执行一下controller再访问