1. 什么是Sentinel
Sentinel是SpringCloud Alibaba的一个开源服务调控组件,主要以流量作为切入点,从流量控制,熔断降级,系统负载监控等方面来对服务进行调整与控制,作用与Hystrix类似,但Sentinel的功能,使用方式等方面都要比Hystrix更加方便。随着微服务的持续发展,在服务调控方面上,Sentinel已逐渐取代了Hystrix的位置,成为当前市面上最常用的微服务调控组件。
Sentinel主要分为俩个部分,分别是:核心库和控制台。
核心库:经常用在我们的客户端上,与我们的微服务进行嵌套,能够运行在所有的Java环境上,同时它也对Dobbo,SpringCloud等其他微服务框架有很好的支持性。
控制台:主要是一个基于Springboot的一个微服务,可以直接打包运行,类似于我们的nacos服务端。
2. Sentinel的特征以及作用
Sentinel是SpringCloud Alibaba生产出来的产品,在测试和应用场景等方面都具有很大的优势,Sentinel的特征主要有:
1.丰富的应用场景: 由于Sentinel是SpringCloud Alibaba生产出来的,在内部测试方面有很大的范围度:比如双十一的时的流量监控,商品秒杀时系统流量的的承受范围等等,正因为他的出身地点不一般,所以在应用场景方面会更加的丰富。
2.完备的实时监控: Sentinel 提供了一个良好的可视化监控页面,在页面上可以对系统的一些接口等方面进行很好的视察,也可以在监控页面上对流量进行调控等。
3.广泛的开源生态: Sentinel 的出现秉承着开源的原则,可以免费使用,同时他也对市面上的一些开源框架有很好的支持。
4.完善的 SPI 扩展点: Sentinel 提供简单易用、完善的 SPI 扩展点。我们可以通过修改源码等方式来创造出更适合我们的Sentinel调控,就比如我们的规则双向持久化等。
Sentinel几乎拥有Hystrix所有的功能特点,比如:服务熔断,服务降级等,同时Sentinel还具有流量控制,系统控制等其他功能,在对服务进行调控时会更加的友好以及细致。
3. 服务调控组件对比
详细可参考官网:https://github.com/alibaba/Sentinel/wiki/Sentinel-%E4%B8%8E-Hystrix-%E7%9A%84%E5%AF%B9%E6%AF%94
4. 简单入门
1.下载Sentinel的jar包: https://github.com/alibaba/Sentinel/releases
2.启动Sentinel并进入操作界面: 以jar包的方式运行,访问http://localhost:8080/,Sentinel的默认账号和密码都是Sentinel
3.配置相关模块信息: 导入相关依赖以及配置相对应的Sentinel路径
导入pom依赖:
<!-- Sentinel 服务流控 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
编写配置信息:
spring:
cloud:
nacos:
discovery:
group: test
service: ${
spring.application.name}
server-addr: 127.0.0.1:8848
config:
file-extension: yaml
server-addr: 127.0.0.1:8848
sentinel:
transport: