Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。
Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
Sentinel核心分为两个部分:
核心库(Java 客户端):能够运行于所有 Java 运行时环境,同时对Dubbo /Spring Cloud 等框架也有较好的支持。
控制台(Dashboard):基于 Spring Boot 开发,打包后可以直接运行。
微服务调用链路中的某个服务故障,引起整个链路中所有微服务都不可用,这就是雪崩。
设定超时时间,请求超过一定时间没有相应就返回错误信息,不会无休止的等待。
该方法只能缓解,不能根本解决问题。
限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离
有断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求。
显示业务访问的QPS,避免服务因流量的突增而故障。
属于预防手段。
微服务调用链路中的某个服务故障,引起整个链路中所有微服务都不可用。
Sentinel是分布式系统的流量卫兵,Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。是阿里巴巴开源的一款微服务流量控制组件。
官网地址:https://sentinelguard.io/zh-cn/index.html
Sentinel具有以下特征:
访问官网:https://github.com/alibaba/Sentinel/releases
sentinel-dashboard-1.8.4.jar
端口默认是8080
java -jar sentinel-dashboard-1.8.4.jar
# 设置参数尤其是指定端口,必须两个都指定
nohup java -Dserver.port=8858 -Dcsp.sentinel.dashboard.server=localhost:8858 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.4.jar &
命令详解:
1.nohup command & #在后台运行
2.-Dserver.port=8858 #设置sentinel dashboard服务端口是8858
3.-Dcsp.sentinel.dashboard.server=localhost:8858 :# 指定要被哪个控制台监控(这里指定的是自己监控自己)
4.-Dproject.name=sentinel-dashboard # 指定实例名称(名称会在控制台左侧以菜单显示)
#5,6不设置的时候初始账号密码都是sentinel
5.-Dsentinel.dashboard.auth.username=sentinel # 设置登录的帐号为:sentinel
6.-Dsentinel.dashboard.auth.password=123456 # 设置登录的密码为:123456
@echo off
cd E:\Program Files\Java\jdk1.8.0_131\bin
java -jar -Xms256m -Xmx256m -Dserver.port=8858 -Dcsp.sentinel.dashboard.server=127.0.0.1:8858 E:\dev\sentinel\sentinel-dashboard-1.8.4.jar
pause
localhost:8080,默认的账号密码是sentinel
参考:https://blog.csdn.net/Blueeyedboy521/article/details/124599844
docker run --name sentinel -p 8858:8858 -d bladex/sentinel-dashboard:latest
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-sentinelartifactId>
dependency>
spring:
cloud:
sentinel:
transport:
dashboard: localhost:8080 # sentinel控制台地址
比如访问http://localhost:8088/order/101
如果出现sentinel 簇点链路为空白–不显示资源
sentinel 必须跟微服务处在同一个局域网中。
因为 sentinel 机器列表里显示的服务IP地址为内网地址。
(While Nacos 可以在内网,也可以在外网)