Sentinel流量卫兵
什么是sentinel
0.说明
- https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_how_to_use_sentinel
- https://github.com/alibaba/Sentinel/wiki
- 翻译:随着微服务的普及,服务调用的稳定性变得越来越重要。Sentinel以“流量”为突破口,在流量控制、断路、负载保护等多个领域进行工作,保障服务可靠性。
- 通俗:用来在微服务系统中保护微服务对的作用 如何 服务雪崩 服务熔断 服务降级 就是用来替换hystrix
1.特性
-
丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
-
完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
-
广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
sentinel与Hystrix区别
1、Hystrix能实现的,sentinel都可以实现
2、sentinel是控制台配置,配置规则简单,不用写程序代码,就有默认。而Hystrix要写代码
3、sentinel的有流控(QPS,线程数),降级(RT,异常比例,异常数),热点key等配置,配置的粒度更细,功能更完善。
Sentinel的使用
- sentinel提供了两个服务组件:
一个是 sentinel 用来实现微服务系统中服务熔断、降级等功能。这点和hystrix 类似
一个是 sentinel dashboard 用来监控微服务系统中流量调用等情况。这点和hystrix 类似
1. sentinel dashboard的安装
1.下载
https://github.com/alibaba/Sentinel/releases
2.启动
- 仪表盘是个jar包可以直接通过java命令启动 如: java -jar 方式运行 默认端口为 8080
- java -Dserver.port=9191 -jar sentinel-dashboard-1.7.2.jar
3.访问web界面
- http://localhost:9191/#/login
4.登录
- 用户名&密码: sentinel
2.sentinel 实时监控服务
1.创建项目引入依赖
<!--引入nacos client依赖-->
<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>
2.配置
spring:
sentinel:
transport:
dashboard: localhost:8080
3.启动服务
4.访问dashboard界面查看服务监控
- 发现界面什么都没有?
- 默认情况下sentiel为延迟加载,不会在启动之后立即创建服务监控,需要对服务进行调用时才会初始化
5.开发服务
@RestController
@RequestMapping("/sentinel")
public class SentinelController {
@GetMapping("/test")
public String test(){
return "sentinel test ";
}