1.什么是Sentinel?
Sentinel是一个基于Java开发的流量控制组件,它可以帮助开发者更好地控制服务的流量,以及更好地保护服务免受恶意攻击。
它的主要功能包括:流量控制、熔断降级、系统负载保护、服务容错保护、服务限流、服务熔断、服务降级、服务热点参数限流等。可以通过邮件、短信、微信等方式发送报警信息,以便及时发现服务的异常情况,从而及时采取措施。
2.Sentinel控制台dashboard服务器安装
(1).在GitHub上下载sentinel-dashboard.jar文件
Github源码以及jar包下载地址地址:https://github.com/alibaba/Sentinel/wiki/%E6%8E%A7%E5%88%B6%E5%8F%B0
Sentinel官网:https://sentinelguard.io/zh-cn/docs/dashboard.html
我用的是1.8.6版本:https://github.com/alibaba/Sentinel/releases
(2).启动sentinel-dashboard
首先把下载好的jar包放到桌面任意位置(我放在桌面上的test文件夹中)
!!!注意:不要去解压下载的文件夹,如果下载的是源码,则需要自己去压缩
然后打开终端定位到jar包文件
cd Desktop/test
注意:这个test是我存放刚下载的jar包的文件夹,如果放在桌面,则直接删除/test
启动进程,输入如下命令,然后输入电脑登录密码
sudo java -Dserver.port=9999 -Dcsp.sentinel.dashboard.server=localhost:9999 -Dproject.name=sentinel-dashboard -jar /Users/jianyuliang/Desktop/Test/sentinel-dashboard-1.8.6.jar
因为sentinel-dashboard默认启动是使用8080端口,和tomcat冲突。这里指定的是9999端口。可根据自己的需求设置。
显示如下图所示,这个时候我们就已经成功启动sentinel-dashboard
(3).测试登录sentinel-dashboard
在游览器中输入:http://localhost:9999/#/login
此时显示登录页面,账号和密码均为:sentinel,此时进入如下页面,表示成功
3.Sentinel的使用(在目标微服务上整合Sentinel)
1.配置Sentinel的maven依赖
在pom.xml文件中添加下面依赖,然后刷新maven
<!-- sentinel依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
依赖解释:在这个依赖中重要的子依赖
(1).simple-http:它是一个简版的http服务器,用于与dashboard通讯
Sentinel中的simple http是一种提供HTTP端点的通信模块,用于接收来自Dashboard的控制指令 1.它是sentinel-transport模块的一个子模块,使用NIO实现了一个简单的HTTP服务器 2.它的作用是让Sentinel Client能够与Dashboard进行远程通信,实现规则管理和推送、数据上报和监控等功能
(2).aspectj的依赖,用于完成对目标资源的统计(流量QPS)工作
2. yml中配置sentinel服务
在application.yml文件中添加如下配置,然后启动项目,测试sentinel是否可以监控
spring:
cloud:
sentinel: #sentinel配置
transport:
port: 8719
dashboard: localhost:9999
eager: true
当用postman或Apifox等联调工具测试代码时,可以登录sentinel查看访问记录