今日目标
安装Sentinel
项目整合Sentinel
1. Sentinel介绍和安装
1.1.初识Sentinel
Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.html
Sentinel 具有以下特征:
•丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
•完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
•广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
•完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。
1.2. Sentinel安装
相对于于前面Nacos的下载、shell指令的启动,Sentinel为开发者提供开箱即用的jar包,小伙伴可以从 release页面 下载不同版本的控制台 jar 包。我使用的是sentinel-dashboard-
1.2.1.Sentinel运行
将jar包放到任意非中文目录,执行命令
java -Dserver.port=8888 -jar sentinel-dashboard-1.8.6.jar
如果要修改Sentinel的默认端口、账户、密码,可以通过下列配置:
配置 | 默认值 | 说明 |
---|---|---|
server.port | 8080 | 服务端口 |
sentinel.dashboard.auth.username | sentinel | 默认用户名 |
sentinel.dashboard.auth.password | sentinel | 默认密码 |
例如,修改端口:
java -Dserver.port=8888 -jar sentinel-dashboard-1.8.6.jar
1.2.2.Sentinel访问
访问http://localhost:8080
页面,可以访问sentinel的控制台了
需要输入账号和密码,默认都是:sentinel
登录后,发现一片空白,什么都没有
这是因为我们还没有与微服务整合
3. 微服务整合Sentinel
Sentinel项目实际上和前面介绍的Seata项目是项目的,不过我这里是将项目名称进行修改
【步骤一】:环境导入微服务
获取代码地址
https://github.com/bangbangzhou/learn_springboot/tree/main/sentinel-study
sentinel-study:父工程,负责管理项目依赖
-
sentinel-account-service:账户服务,用于用户的资金管理。提供扣减余额的接口
-
sentinel-order-service:库存服务,用于管理商品库存。提供扣减库存的接口,创建订单时,需要调用sentinel-account-service和sentinel-storage-service
-
sentinel-storage-service:订单服务,用于管理订单。
【步骤二】:引入Sentinel依赖
在sentinel-order-service服务中新增sentinel的pom依赖,如下:
<!--流控降级管理-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
【步骤三】:配置控制台Sentinel
在sentinel-order-service服务中修改application.yaml文件,添加下面内容:
spring:
cloud:
sentinel:
transport:
dashboard: localhost:8080
【步骤四】:启动项目
启动order、Account和Storage三个微服务
【步骤五】:访问order-service的任意端点
打开POSTMAN,
-
请求方式:POST
-
访问地址:http://localhost:9092/order?userId=user20230929&commodityCode=100202003032041&count=3&money=30
![](https://i-blog.csdnimg.cn/blog_migrate/152883005f3ad6c5b6ff62f1b82193e8.png)
然后再访问sentinel的控制台,查看效果