前言
Sentinel是阿里开源的项目,提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。
1.拉取并运行sentinel控制台
我的SpringCloudAlibabaVersion是2021.0.1.0 ,推荐我用1.8.3的sentinel、
下载jar直接 java -jar sentinel-dashboard-1.8.3.jar 运行即可
- 访问 sentinel 默认端口8080, 初始账号密码sentinel/sentinel
2.项目中添加配置sentinel
2.1添加依赖
上一篇中已添加,SpringCloudAlibaba篇(二)整合Nacos注册配置中心
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>2021.0.1.0</version>
</dependency>
2.2配置文件
这里我直接放nacos中了,用于共享配置文件
bootstrap.yml添加
url:
nacos: localhost:8848
spring:
application:
name: user-service #实例名
profiles:
active: dev
cloud:
nacos:
discovery:
#集群环境隔离
cluster-name: shanghai
#命名空间
namespace: ${spring.profiles.active}
#持久化实例 ture为临时实例 false为持久化实例 临时实例发生异常直接剔除, 而持久化实例等待恢复
ephemeral: true
#注册中心地址
server-addr: ${url.nacos}
config:
namespace: ${spring.profiles.active}
file-extension: yaml
#配置中心地址
server-addr: ${url.nacos}
extension-configs[0]:
data-id: mysql-user.yaml
group: DEFAULT_GROUP
refresh: false
extension-configs[1]:
data-id: sentinel.yaml
group: DEFAULT_GROUP
refresh: false
3.测试
这里我写个测试接口, 因为服务有请求才能在sentinel控制台中看到服务
@RestController
@RequestMapping(value = "user")
public class UserController {
@GetMapping("get")
public String get(){
return "hello world!";
}
}
访问接口
刷新sentinel控制台 即可看到user-service
总结
Sentinel 具有以下特性:
- 丰富的应用场景:
Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
- 完备的实时监控:
Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
- 广泛的开源生态:
Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。
- 完善的 SPI 扩展点:
Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。
具体功能,大家先自行研究, 因为我实际也没有用过,日后用过功能之后再补存上
拜拜!~