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
5.6 查看实时监控界面
- 点赞
- 收藏
- 关注作者
评论(0)