当前位置: 首页 > news >正文

sentinel安装部署及测试--实践

一、什么是 Sentinel?

Sentinel 是阿里巴巴开源的一款用于微服务流量控制和系统防护的中间件。它的主要功能包括:

**流量控制(Flow Control):**限制系统的 QPS 或线程数,防止因流量过大导致系统崩溃。
**熔断降级(Circuit Breaker):**当某个服务或接口调用失败率过高时,自动切断调用链路,避免故障扩散。
**系统负载保护(System Protection):**根据系统的整体负载情况动态调整流量,确保系统稳定运行。
**实时监控与规则动态调整:**支持通过 Web 控制台对流量规则进行动态配置和监控。
Sentinel 广泛应用于 Spring Cloud、Dubbo 等微服务框架中,是构建高可用系统的重要工具。

二、安装前的准备

在开始安装 Sentinel 之前,请确保您的环境满足以下条件:

  1. 硬件要求
    CPU:建议双核及以上。
    内存:至少 4GB 可用内存。
    磁盘空间:至少 500MB 的可用磁盘空间。
  2. 软件要求
    操作系统:Windows 10/11 或更高版本。
    Java 开发工具包(JDK):建议使用 JDK 11 或更高版本。
    Maven:用于构建和管理项目。
    数据库(可选):如果需要持久化规则,可以安装 MySQL 或其他兼容数据库。
    浏览器:用于访问 Sentinel 控制台。
三、安装
1.下载 Sentinel 控制台

Sentinel 提供了一个独立的控制台模块,用于管理和监控规则。您可以从 Sentinel 的官方 GitHub 仓库下载最新版本的控制台代码:

https://github.com/alibaba/Sentinel/releases/tag/1.8.8

image-20250417142451426

3. 启动 Sentinel 控制台

使用以下命令启动 Sentinel 控制台:

java -Dserver.port=8080  -jar sentinel-dashboard-1.8.8.jar//端口若被占用,更换端口

启动成功:

image-20250417143747189

默认情况下,Sentinel 控制台的登录用户名和密码均为 sentinel。如果您希望修改默认凭据,可以在启动命令中添加以下参数:

-Dsentinel.dashboard.auth.username=your_username
-Dsentinel.dashboard.auth.password=your_password

启动成功后,您可以通过浏览器访问 http://localhost:8080,输入用户名和密码登录控制台。

image-20250417143950998

4.配置 Sentinel 客户端

接下来,在您的微服务项目中集成 Sentinel 客户端。以下是基于 Spring Boot 的示例步骤:

(1)添加依赖

在项目的 pom.xml 文件中添加以下依赖:

<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-core</artifactId><version>1.8.6</version>
</dependency>
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId><version>2021.1</version>
</dependency>
(2)配置文件

application.yml 文件中添加以下配置:

spring:cloud:sentinel:transport:dashboard: localhost:8080 # 指定 Sentinel 控制台地址
(3)定义限流规则

创建一个简单的控制器,演示如何为某个接口设置限流规则:

import com.alibaba.csp.sentinel.annotation.SentinelResource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class TestController {@GetMapping("/test")@SentinelResource(value = "test", blockHandler = "handleException")public String test() {return "Hello, Sentinel!";}public String handleException(BlockException ex) {return "Oops! The request has been limited.";}
}
(4)启动应用

启动您的 Spring Boot 应用程序后,访问 http://localhost:8080,您应该能够在 Sentinel 控制台中看到该应用的流量统计信息。

四、功能测试
1.流量控制测试

在 Sentinel 控制台中,导航到“流量控制”页面,为 /test 接口设置以下规则:

资源名称:test
阈值类型:QPS
单机阈值:1
保存规则后,尝试快速多次访问 /test 接口。当请求超过设定的 QPS 限制时,您将收到限流提示。

image-20250417193831109
2.熔断降级测试

在“熔断降级”页面中,为某个接口设置熔断规则。例如,当接口调用失败率达到 50% 时触发熔断。

测试方法:模拟接口调用失败场景,观察是否触发熔断逻辑。

image-20250417194230530
五、高级功能
1.规则持久化

为了确保规则在重启后仍然生效,您可以将规则存储到数据库中。Sentinel 提供了对 MySQL 的支持,您只需在控制台中启用相关插件即可。

2.自定义扩展

Sentinel 支持通过 SPI(Service Provider Interface)机制进行自定义扩展。例如,您可以编写自定义的流量统计逻辑或规则加载器。

六、常见问题及解决方法
1.控制台无法启动

可能原因:

端口被占用。
JDK 版本不匹配。
解决方法:

检查端口占用情况,更换端口号。
确保使用正确的 JDK 版本。

2.客户端无法连接控制台

可能原因:

控制台地址配置错误。
防火墙阻止连接。
解决方法:

检查 application.yml 文件中的 transport.dashboard 配置。
关闭防火墙或添加例外规则。

http://www.dtcms.com/a/138636.html

相关文章:

  • 在Vmware15(虚拟机免费) 中安装纯净win10详细过程
  • RK3588 实现音视频对讲
  • Oracle 12.1.0.2补丁安装全流程
  • 如何使用3DMAX插件PFSpliner将3D对象转化为艺术样条线?
  • AOP的基本应用案例---统计每个函数的执行时间
  • IntelliJ IDEA 项目导入后 Java 文件图标显示为红色小写 j 的解决方法
  • LVS+keepalived搭建高可用架构
  • 资源直方图与资源平衡技术在资源约束下的作用是什么?
  • Paramiko 使用教程
  • [特殊字符] UnionFS(联合文件系统)原理解析:容器背后的存储技术
  • css button 点击效果
  • Github 2025-04-17 Go开源项目日报 Top9
  • Go:低级编程
  • QT 初体验
  • 无源蓝牙技术与传统RFID(射频识别)对比
  • 使用DDR4控制器实现多通道数据读写(八)
  • 在极狐GitLab 身份验证中如何使用 OIDC?
  • 大数据分析02 基础语法差异
  • 【FFmpeg从入门到精通】第二章-FFmpeg工具使用基础
  • Java虚拟机(JVM)平台无关?相关?
  • BFC详解
  • uniapp上传图片时(可选微信头像、相册、拍照)
  • 基于Canal+Spring Boot+Kafka的MySQL数据变更实时监听实战指南
  • ETL数据集成平台在电商行业五大应用场景
  • 阅读分析Linux0.11 /boot/head.s
  • kotlin + spirngboot3 + spring security6 配置登录与JWT
  • Java如何在遍历集合时删除特定元素
  • 【Pandas】pandas DataFrame get
  • 2025.04.17【Stacked area】| 生信数据可视化:堆叠区域图深度解析
  • 国内外汽车行业供应链导入EDI方式的差异