完美教程:https://developer.aliyun.com/article/783342
什么是Sentinel
Sentinel定位是分布式系统的流量防卫兵。目前互联网应用基本上都使用微服务,微服务的稳定性是一个很重要的问题,而限流、熔断降级是微服务保持稳定的一个重要的手段。
限流:只允许部分请求得到响应和服务,超过的部分将被拒绝服务、排队或等待、降级等处理。
熔断:对向服务不能使用时开启自我保护停止调用,根据业务需要进行相应处理。
降级:有限的服务资源下保留系统核心需求,关闭非核心功能,保障核心正常使用。
丰富的应用场景。控制突发流量在可控制的范围内,消息削峰填谷,集群流量控制,实时熔断下游不可用的应用等等。
完备的实时监控。Sentinel 提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
广泛的开源生态。Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
完善的 SPI 扩展点。Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。
下载安装Sentinel 控制台 (sentinel-dashboard.jar)
下载地址:https://github.com/alibaba/Sentinel/releases
1、java -jar sentinel-dashboard.jar
2、http://localhost:8080 打开控制面板
微服务集成 Sentinel
注意:在微服务工程中添加如下依赖
<!--sentinel-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
在微服务工程中添加配置
server:
port: 20000
spring:
application:
name: lanqiao-passenger
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
sentinel:
transport:
dashboard: http://localhost:8080
spring.cloud.sentinel.transport.dashboard 指向的是Sentinel 控制台服务器地址,可以实现流控数据的监控和流控规则的分发。
所有的微服务配置一致,配置完毕之后,可以启动微服务,去Sentinel dashboard 控制台查看,效果如下图:
注意:微服务启动之后,不一定立刻能够在dashboard控制台左侧,看到微服务的监控菜单。你需要访问一下微服的接口地址 ,在去刷新控制台,例如:先请求一下http://localhost:10000/api/passenger/hello ,记得疯狂刷几次才有效果