github官网:https://github.com/alibaba/Sentinel 中文文档:https://sentinelguard.io/zh-cn/docs/introduction.html Sentinel是阿里中间件团队开源的,面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。
该组件可以替换hystrix了。
sentinel提供了两个服务组件:
可以是Java应用程序中的任何内容,例如,由应用程序提供的服务或有应用程序调用其它应用提供的服务,甚至可以是一段代码。
围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。
https://github.com/alibaba/Sentinel/releases
仪表盘是个jar包可以直接通过java命令启动 如: java -jar 方式运行 默认端口为 8080
java -Dserver.port=9191 -jar sentinel-dashboard-1.7.2.jar
这里我是在windows上面启动的,刚开始在linux上启动的时候,sentinel实时监控和流量控制有点问题。
http://localhost:9191/#/login
用户名和密码都是sentinel
<!--引入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>
server.port=8998
spring.application.name=SENTINEL
#nacos server
spring.cloud.nacos.server-addr=192.168.159.22:8848
# 开启sentinel保护
spring.cloud.sentinel.enabled=true
#指定sentinel dashboard的web地址
spring.cloud.sentinel.transport.dashboard=localhost:9191
#指定sentinel组件与sentinel dashboard组件通信地址
spring.cloud.sentinel.transport.port=8719
发现界面什么都没有? 默认情况下sentinel为延迟加载,不会在启动之后立即创建服务监控,需要对服务进行调用时才会初始化。
http://localhost:8998/demo