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

17网站一起做网店代发流程3合1网站建设电话

17网站一起做网店代发流程,3合1网站建设电话,做摄影和后期的兼职网站,哈尔滨百度引擎[Java实战]Spring Boot整合Sentinel:流量控制与熔断降级实战(二十九) 一、Sentinel简介 Sentinel是阿里开源的分布式系统流量防卫组件,核心功能包括: 流量控制:根据QPS、线程数等指标限制资源访问熔断降…

[Java实战]Spring Boot整合Sentinel:流量控制与熔断降级实战(二十九)

一、Sentinel简介

Sentinel是阿里开源的分布式系统流量防卫组件,核心功能包括:

  • 流量控制:根据QPS、线程数等指标限制资源访问
  • 熔断降级:自动阻断不稳定资源的调用链,防止雪崩效应
  • 系统保护:自适应保护系统负载
  • 实时监控:可视化控制台展示资源调用数据

为什么选择Sentinel?

  • 轻量级:核心库无多余依赖
  • 丰富规则:支持基于QPS/并发数/关联资源的多维度控制
  • 动态配置:规则支持实时生效
  • 生态完善:与Spring Cloud、Dubbo深度整合

二、docker启动Sentinel

1.拉取镜像

 docker pull docker.1ms.run/bladex/sentinel-dashboard:1.8.6

2.运行容器

docker run -d \--name sentinel-dashboard \-p 8858:8858 \  # 控制台默认端口为 8080,此处映射为 8858(避免冲突)-e AUTH_USERNAME=sentinel \  # 可选:自定义登录用户名-e AUTH_PASSWORD=sentinel123 \  # 可选:自定义登录密码docker.1ms.run/bladex/sentinel-dashboard:1.8.8#整合为一行docker run -d --name sentinel-dashboard -p 8858:8858 -e AUTH_USERNAME=sentinel -e AUTH_PASSWORD=sentinel123 docker.1ms.run/bladex/sentinel-dashboard:1.8.8

二、Spring Boot整合Sentinel原理

  1. 核心机制
    Sentinel通过AOP切面拦截@SentinelResource注解标记的方法,结合规则配置实现控制逻辑。

  2. 工作流程

    • 资源定义:通过注解或代码定义受保护资源
    • 规则配置:设置流量控制/熔断规则
    • 请求拦截:Sentinel代理请求并执行规则检查
    • 结果处理:触发限流/熔断时执行降级逻辑

三、代码实现步骤

1. 环境准备

  • JDK 1.8+
  • Spring Boot 2.7.x
  • Sentinel 1.8.6

2. 添加依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId><version>2021.0.5.0</version>
</dependency><dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-annotation-aspectj</artifactId><version>1.8.6</version></dependency>

3. 配置控制台

application.yml:

spring:application:name: my-spring-boot-app  # 应用名称,用于在 Sentinel 控制台中识别cloud:sentinel:transport:dashboard: 192.168.231.132:8858 # Sentinel控制台地址eager: true    # 强制立即初始化web-context-unify: false  # 关闭URL收敛(解决资源不显示问题)

4. 定义资源点

方式一:注解方式


@RestController
@RequestMapping("/api")
public class SentinelController {@SentinelResource(value = "getOrder",blockHandler = "handleBlock",  // 限流处理方法fallback = "handleFallback"    // 熔断降级方法)@GetMapping("/order")public String getOrder() {// 正常业务逻辑return "Order Created Successfully";}// 限流处理方法public String handleBlock(BlockException ex) {// 打印限流日志System.out.println("=======请求过于频繁,请稍后再试!=======");System.out.println("限流异常信息: " + ex.getMessage());return "请求过于频繁,请稍后再试!";}// 熔断降级处理方法public String handleFallback(Throwable t) {// 打印熔断日志System.out.println("=======服务暂时不可用=======");System.out.println("熔断异常信息: " + t.getMessage());return "服务暂时不可用";}
}

方式二:代码定义

try (Entry entry = SphU.entry("resourceName")) {// 被保护的业务逻辑
} catch (BlockException ex) {// 处理被限流的情况
}

5. 配置规则

动态规则(推荐通过控制台配置)
启动Sentinel Dashboard后通过UI配置:

  • 流控规则:设置QPS阈值、流控模式等
  • 降级规则:配置熔断策略(慢调用比例/异常比例/异常数)

四、测试验证

1. 启动服务

  • 启动Sentinel Dashboard
  • 运行Spring Boot应用

在这里插入图片描述

qps设置:

在这里插入图片描述

2. 触发规则配置

  1. 流量控制测试
    使用JMeter或Postman快速发送请求:
# 快速连续访问接口curl http://localhost:8080/api/order# 快速发送10次请求for i in {1..10}; do curl http://ip:8080/api/order; done

当QPS超过阈值时,返回handleBlock方法内容。
在这里插入图片描述

  1. 熔断降级测试
    模拟接口异常:
    @GetMapping("/order")
    public String getOrder() {if (System.currentTimeMillis() % 2 == 0) {throw new RuntimeException("模拟异常");}return "success";
    }
    
    当异常比例触发阈值时,进入熔断状态,返回降级结果。

3. 控制台监控

访问localhost:8080进入Dashboard:

  • 实时监控:查看资源调用QPS/RT
  • 规则管理:动态修改规则
  • 链路追踪:分析调用关系

五、高级配置技巧

  1. 热点参数限流
    针对特定参数值进行细粒度控制:

    @SentinelResource(value = "hotParam", blockHandler = "handleHotParam")
    @GetMapping("/hot")
    public String hotEndpoint(@RequestParam String userId) {return "Processed: " + userId;
    }
    

    在控制台配置参数索引(如参数0)的特定值规则。

  2. 集群流控
    适用于分布式系统,需部署Token Server:

    spring:cloud:sentinel:transport:client-ip: ${server.ip} # 当前实例IPcluster:server:host: ${token.server.ip}port: 8720
    

六、常见问题排查

  1. 规则不生效

    • 检查资源名称是否匹配
    • 确认是否开启eager: true
    • 验证控制台配置是否保存成功
  2. Dashboard无数据

    • 检查网络连通性
    • 确认客户端时间与服务器同步
    • 查看应用日志中的连接状态
  3. 依赖冲突
    使用mvn dependency:tree排查冲突依赖,常见于旧版本Spring Cloud。

七、总结

通过Sentinel可实现:

精准流量控制防止系统过载

  • 自动熔断避免级联故障
  • 可视化监控提升运维效率

最佳实践建议

  • 生产环境务必启用持久化(如Nacos集成)
  • 结合压测结果设置合理阈值
  • 定期审查监控数据优化规则

附录

  • Sentinel官方文档

希望本教程对您有帮助,请点赞❤️收藏⭐关注支持!欢迎在评论区留言交流技术细节!

http://www.dtcms.com/wzjs/802480.html

相关文章:

  • 旅游网的网站建设openshift做网站
  • 济南免费做网站网站建站公司订单多吗
  • 帮别人做违法网站服装网站建设准备
  • 做网站时空间的选择做亚马逊有哪些站外折扣网站
  • 建站做网站哪家好网站信息查询
  • 湖北网站建设搭建泰安千橙网络有限公司
  • 网站开发经验与教训如何建平台网站
  • 毕业设计网站开发流程图西亚网站建设科技
  • 青岛市网站建设公司wordpress 网站搬迁
  • 微信朋友圈推广方案网站优化 pdf
  • 做英文网站赚钱泉州正规制作网站公司
  • 合肥市住房和城乡建设厅官网杭州网站优化搜索
  • 无锡高端网站建设公司潍坊免费做网站
  • 用dw做的网页怎么连到网站上网站的创建历程怎么写
  • 杭州建设网站哪家好台州网站开发公司
  • 陕西建设网网站集群vmware做网站步骤
  • 做一借款撮合网站网站产品页面什么时候做
  • 可以加外链的网站域名网站备案查询
  • 红色门户网站企业信用信息查询平台
  • 国外超酷设计网站网站首页设计报价多少
  • 企业网站源码简约wordpress好还是dz好
  • saas建站平台介绍优化关键词有哪些方法
  • 建设网站需要从哪方面考虑福州做网站改版哪里比较好
  • 呼家楼做网站的公司广告公司网站建设
  • 网站标题更改后要多久才能收录黄页网站 php
  • 没有营业执照 怎么做网站成都有哪些网站建设
  • 桂林网站建设找骏程wordpress设置手机主题
  • 网站建设客户分析一个专门做ppt的网站吗
  • 聊城wap网站制作网站建设费用申请报告
  • 学校网站的建设费用吗wordpress不支持apk