Sentinel流量卫兵
文章目录
1、什么是Sentinel
github官网:https://github.com/alibaba/Sentinel
中文文档:https://sentinelguard.io/zh-cn/docs/introduction.html
Sentinel是阿里中间件团队开源的,面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。
该组件可以替换hystrix了。
sentinel提供了两个服务组件:
- sentinel:用来实现微服务系统中服务熔断、降级等功能。
- sentinel dashboard:用来监控微服务系统中流量调用等情况(和hystrix dashboard类似)。
2、Sentinel的特性:
-
丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
-
完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
-
广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
3、两个重要概念
3.1 资源
可以是Java应用程序中的任何内容,例如,由应用程序提供的服务或有应用程序调用其它应用提供的服务,甚至可以是一段代码。
3.2 规则
围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。
4、Sentinel Dashboard使用
4.1 下载
https://github.com/alibaba/Sentinel/releases
4.2 启动
仪表盘是个jar包可以直接通过java命令启动 如: java -jar 方式运行 默认端口为 8080
java -Dserver.port=9191 -jar sentinel-dashboard-1.7.2.jar
这里我是在windows上面启动的,刚开始在linux上启动的时候,sentinel实时监控和流量控制有点问题。
4.3 访问web界面
http://localhost:9191/#/login
4.4 登录
用户名和密码都是sentinel
5、sentinel实时监控服务
5.1 创建项目并引入依赖
<!--引入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>
5.2 配置
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
5.3 启动服务并访问dashboard界面查看服务监控
发现界面什么都没有?
默认情况下sentinel为延迟加载,不会在启动之后立即创建服务监控,需要对服务进行调用时才会初始化。
5.4 开发服务
5.5 启动并进行服务调用
http://localhost:8998/demo
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?