Sentinel是阿里巴巴开源的一款面向分布式服务架构的轻量级流量控制、熔断降级组件。Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助保护服务的稳定性。
官方文档:https://sentinelguard.io/zh-cn/docs/introduction.html
主要作用
- 实时监控:Sentinel可以实时监控分布式系统的运行情况,包括系统的负载、吞吐量、延迟等关键指标,实时了解系统的运行状态。
- 流量控制:Sentinel可以控制每个服务或接口的并发请求数量,避免因为并发请求过多导致服务崩溃。它可以根据预设的规则对系统的流量进行控制,当系统的流量超出设定的阈值时,可以进行限流操作,保护系统不被过载压垮。
- 降级处理:当系统出现异常或者负载过高时,Sentinel可以根据预设的降级策略,自动对部分功能进行降级处理,保证系统的核心功能正常运行。这通常涉及对非核心服务进行限流或快速返回处理,以释放资源保证核心任务的正常运行。
- 熔断机制:通过熔断机制,Sentinel可以在系统出现故障或异常时,暂时关闭故障的服务,避免故障的扩散,保证系统的稳定性。这类似于电路中的保险丝,当电流过大时自动熔断以保护电路。
- 实时报警:Sentinel可以根据预设的规则,对系统的异常情况进行实时报警,及时通知相关人员进行处理,避免问题扩大化。
下载Sentinel (下载前看一下对应版本号)
下载链接:https://github.com/alibaba/Sentinel/releases
下载好之后运行登录:(最好不要用默认端口):启动命令
java -Dserver.port=8077 -jar sentinel-dashboard-1.8.6.jar
访问:
在gateway网关服务中引入依赖并添加配置:
随便请求一个controller就可以看到管理的服务了
我们可以在这里做一些操作控制。可以通过服务id或者api分组进行规则设置,这里是设置限流规则。
测试的话我们可以使用jmeter
下载地址:https://jmeter.apache.org/download_jmeter.cgi