第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

SpringBoot集成Sentinel實(shí)戰(zhàn):從依賴到自定義限流與監(jiān)控

本文已收录在Github关注我,紧跟本系列专栏文章,咱们下篇再续!

  • 🚀 魔都架构师 | 全网30W技术追随者
  • 🔧 大厂分布式系统/数据中台实战专家
  • 🏆 主导交易系统百万级流量调优 & 车联网平台架构
  • 🧠 AIGC应用开发先行者 | 区块链落地实践者
  • 🌍 以技术驱动创新,我们的征途是改变世界!
  • 👉 实战干货:编程严选网

1 添加依赖

1.1 JDK8

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
    <version>2.2.10-RC1</version>
</dependency>

groupId也可为 org.springframework.cloud。

涵盖依赖包:

1.2 JDK21

我使用的 JDK23+SpringBoot3.4.1:

<!-- Sentinel 依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
    <version>2023.0.3.2</version>
</dependency>

2 暴露端点

整合成功后,会暴露actuator/Sentinel端点,所以再添依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

还需配置才能暴露端点(默认不暴露):

management:
  endpoints:
    web:
      exposure:
        include: '*'

3 配置文件

连接Sentinel控制台的地址信息配置

spinrg:
 cloud:
  sentinel:
    transport:
      dashboard: localhost:8080

4 Sentinel 自定义限流响应与实时监控

Sentinel 自定义资源与限流规则

如针对接口限流:

@RestController
@RequestMapping("/pilot")
public class PilotController {

    @SentinelResource(value = "pilot_list", 
                     blockHandler = "blockHandler")
    @GetMapping("/getList")
    public ResultBody list() {
        Map<String, List<Pilot>> pilotServiceList = pilotService.getList();
        return ResultBody.success(pilotServiceList);
    }

    // 限流降级方法
    public ResultBody blockHandler(BlockException e) {
        log.warn("触发限流", e);
        return ResultBody.error("服务繁忙,请稍后再试");
    }
}

value对应的资源名称:

@Configuration
public class SentinelConfig implements BlockExceptionHandler {
    
    @PostConstruct
    private void initFlowRules() {
        List<FlowRule> rules = new ArrayList<>();
        
        // 创建流控规则
        FlowRule rule = new FlowRule();
        // 设置受保护的资源
        rule.setResource("pilot_list");
        // 设置流控规则 QPS
        rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
        // 设置受保护的资源阈值
        rule.setCount(1);
        rules.add(rule);
        
        // 加载规则
        FlowRuleManager.loadRules(rules);
    }

    @Bean
    public SentinelResourceAspect sentinelResourceAspect() {
        return new SentinelResourceAspect();
    }

    @Override
    public void handle(HttpServletRequest request, HttpServletResponse response, String resourceName, BlockException e) throws Exception {
        response.setStatus(429);
        response.getWriter().write("访问过于频繁,请稍后再试");
    }
}

限流效果:

注意

升级后,注意验证规则是否失效,避免版本差异bug。

参考:

本文由博客一文多发平台 OpenWrite 发布!

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開(kāi)發(fā)工程師
手記
粉絲
1.4萬(wàn)
獲贊與收藏
1478

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消