Dubbo sentinel 哨兵 熔断 慢调用比例、异常比例、异常数

news2024/12/25 0:53:38

目录

熔断报这个错误 在调用程序中检测即可

页面配置熔断,配置在 consumer 消费端

慢调用比例规则

最大rt  

比例阈值

熔断时长

最小请求数

统计时长

让流量一直降低发送

异常数量

设置30个异常数

Tps 异常数量未达到30个正常运行

设置1个效果直接连续熔断降级,所以最好设置大点,要不就用其他俩个,或根据业务好好分析下,这属于断的老彻底了

异常比例

设置比例

日志

结论

设置更具熔断比例 如果异常比例未达到80% 继续正常发送


熔断报这个错误 在调用程序中检测即可

SentinelBlockException: DegradeException

consumer 示例代码

package com.example;


import com.example.demo.dubbo.api.DemoService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Component;

import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

@SpringBootApplication
@EnableDubbo
public class Consumer {
    public static void main(String[] args) {
        SpringApplication.run(Consumer.class, args);
    }

    @Component
    static class DemoTask implements CommandLineRunner {
        private static final Logger logger = LoggerFactory.getLogger(DemoTask.class);

        @DubboReference
        private DemoService demoService;
        int cc = 0;
        @Override
        public void run(String... args) {
            Executors.newScheduledThreadPool(1)
                    .scheduleAtFixedRate(() -> {
                        logger.info("Start to call remote.");
                        for (int i = 0; i < 15; i++) {
                            try {
                                String result = demoService.sayHello("dubbo" +(++cc));
                                logger.info(cc+" Call Count:" + i + " Dubbo Remote Return ======> " + result);
                            } catch (RuntimeException ex) {
                                if (ex.getMessage().contains("SentinelBlockException: FlowException")) {
                                    logger.info(cc+" Call Count:" + i + " 已限流");
                                }else if (ex.getMessage().contains("SentinelBlockException: DegradeException")) {
                                    logger.info(cc+" Call Count:" + i + " 已降级");
                                } else {
                                    logger.error(cc+" Call Count:" + i + " Request Failed.", ex);
                                }
                            }
                        }
                    }, 0, 1000, TimeUnit.MILLISECONDS);
        }

    }
}

相关连续性章节在通分类博客下

页面配置熔断,配置在 consumer 消费端

 

慢调用比例规则

调用周发现反应有有太慢的 就降级熔断几秒后再继续请求,保证继续运行不彻底熔断降级断掉

 

慢调比例官方文档没找到具体位置,通过测试验证反向分析 得出结论

最大rt  

返回数据耗时 条件

比例阈值

1秒中占用比例

熔断时长

这几秒钟内进入熔断状态

最小请求数

按照最小的请求数量发请求

统计时长

统计数据在这个时间端内

让流量一直降低发送

 

异常数量

设置30个异常数

 

Tps 异常数量未达到30个正常运行

 

如果tps 超过 则熔断

设置1个效果直接连续熔断降级,所以最好设置大点,要不就用其他俩个,或根据业务好好分析下,这属于断的老彻底了

 

 

 

异常比例

设置比例

 

日志

 

结论

设置好的限流14 每次发送 15 所以没达到80% 的异常数量 可正常发送

设置更具熔断比例 如果异常比例未达到80% 继续正常发送

ok

持续更新

相关连续性章节在通分类博客下

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/726049.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git bash 命令行反应慢、卡顿

1. 在Windows11的电脑上安装了git 后&#xff0c;鼠标右键打开git bash here&#xff0c;打开窗口缓慢&#xff0c;输入命令也慢的要死&#xff0c;如果安装git的时候选择在桌面创建图标&#xff0c;通过桌面图标打开也是一样的 2. 最简单的ls 命令&#xff0c;都要停顿半秒 3.…

Spring Security OAuth2.0(4):Spring Security集成SpringBoot

文章目录 前言一、创建工程二、spring容器配置三、Servlet Context配置四、安全配置五、创建测试七、启动服务器测试 前言 \qquad Spring Boot 是一套Spring的快速开发框架&#xff0c;基于Spring4.0设计&#xff0c;使用Spring Boot开发可以避免一些繁琐的工程搭建和配置&…

d3dx9_43.dll丢失怎么解决

d3dx9_43.dll丢失的影响 当我们在运行某些需要DirectX 9支持的程序时&#xff0c;如果系统中缺少d3dx9_43.dll文件&#xff0c;就会出现错误提示&#xff0c;导致程序无法正常启动。这个错误提示通常会类似于“找不到d3dx9_43.dll”或“d3dx9_43.dll不存在”。 打开电脑浏览器…

剑指 Offer 37: 序列化二叉树

这道题很复杂&#xff0c;首先需要发现是层序遍历&#xff0c;因为只有层序遍历才是这个顺序&#xff0c;并且new就可以调用&#xff0c;说明这里里面就生成了一个新的String&#xff08;可以new一个String&#xff09;&#xff0c;给StringBuilder初始化一个]&#xff0c;然后…

力扣题库刷题笔记31--下一个排列

1、题目如下&#xff1a; 2、个人Python代码实现如下&#xff1a; 前几次提交错误&#xff0c;主要是在上面截图第19行代码&#xff0c;原先写的是Nums nums[:i] temp&#xff0c;然后本地一直能跑过&#xff0c;这里不做多赘述 3、个人Python代码思路&#xff1a; 首先来讲本…

使用springboot框架Java+vue2开发的智慧班牌系统源码,SaaS云平台前后端分离架构

智慧班牌系统可实现数字化办公&#xff0c;对外向学生家长提供各种服务&#xff0c;如&#xff1a;消息通知、请假管理&#xff0c;校园活动&#xff0c;学生动态&#xff0c;教师通讯录&#xff0c;学生定位等各种服务。对内向教师提供各类服务&#xff0c;如&#xff1a;班级…

SpringMVC-1

学习笔记&#xff1a; SpringMVC 框架 Spring Web MVC 是一种基于 Java 实现了 MVC 设计模式的请求驱动型的轻量级 Web 框架&#xff0c;即使用了 MVC 架构模式的思想&#xff0c;将 web 层进行职责解耦&#xff0c;基于请求驱动指的就是使用请求-响应模型&#xff0c;框架的…

[PG]查看数据库大小

查看库大小 select d."oid" as "对象ID", d."datname" as "实例名", d."owner" as "所属者",pg_catalog.pg_size_pretty(d."size") as "大小" from (select oid, datname, pg_catalog.pg_ge…

小程序根据登录的角色动态设置 tabBar

根据登录的状态来展示tabbar的名称 type1 》 供应商 》 合同 送货单 我的 type2 》 监理 》 合同 抽检单 我的 在登录之后就拿到type的值 以及登陆之后跳转到合同页面 在合同页面可以书写逻辑 onShow(){if (Number(uni.getStorageSync("type")) 2) {console.log(11…

mybatis表达式判断引发的问题

在做条件查询的时候&#xff0c; 看似好像没啥问题&#xff0c;但是在查询的时候&#xff0c;检索条件无效&#xff0c;只要把! 去掉就好了&#xff0c; 完美解决。

记录第一次组装电脑遇到的坑

京东装机大师配置清单如下&#xff1a; 主板cpu安装 本次安装拆了两次主板 原因1.主板侧面有个金属板需要从内部安装 2.cpu风扇有个板需要装在主板底下 显卡比较大个要最后装&#xff0c;要不然可能要拆好几次 装系统时候 u盘启动认不出来&#xff0c;他妈的是因为机箱上的usb…

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程(三)

文章目录 源码资源下载Python环境试玩controlnet训练数据准备选一个Stable diffusion模型开始训练 第一篇&#xff1a;https://qq742971636.blog.csdn.net/article/details/131531168 源码资源下载 目前 ControlNet 1.1 还在建设&#xff0c;本文这里使用源码 https://github…

MSP432自主开发笔记2:八路寻迹模块的编程

今日得以继续我的MSP432学习之路&#xff0c;今日学习八路寻迹模块的编程与测试&#xff1a; 本章需要掌握的知识只有俩个&#xff1a;串口通信发送数据、GPIO基础初始化与获取电平状态 这俩个在我专栏里都可寻到&#xff0c;大家可以自行查找~~ 八路灰度寻迹模块的原理与应用…

【UE5 Cesium】13-Cesium for Unreal 加载本地倾斜摄影

目录 效果 步骤 一、获取倾斜摄影资源 二、使用CesiumLab转换 三、在UE中加载转换后的倾斜摄影 效果 步骤 一、获取倾斜摄影资源 首先下载免费的资源&#xff0c;这里是从規劃署 香港三維實景模型 规划署 香港三维实景模型下载的&#xff0c; 我下载了如下6个区域的资源…

突破AI大模型工业化开发,生成式AI迎来全链条服务商

LLM大模型和生成式AI在2023年上半年迅速爆发&#xff0c;不仅高盛集团和麦肯锡发布了生成式AI的经济前景预测&#xff0c;纷纷认为生成式AI将为全球生产力带来显著提升&#xff0c;每年将为全球带来数万亿美元的经济增长&#xff0c;更有UC伯克利和斯坦福等先后发布了LLM大模型…

Centos环境Access denied for user ‘root‘@‘%to database ‘xxx‘

Centos7解决数据库出现Access denied for user ‘root‘‘%to database ‘xxx‘ 问题 原因: root%表示 root用户 通过任意其他端访问操作 被拒绝! 授权即可: 1&#xff1a;进入数据库 mysql -u root -p 2.输入 mysql>grant all privileges on *.* to root% with grant o…

CCF-CSP真题《202303-5 施肥》思路+python,c++满分题解

想查看其他题的真题及题解的同学可以前往查看&#xff1a;CCF-CSP真题附题解大全 试题编号&#xff1a;202303-5试题名称&#xff1a;施肥时间限制&#xff1a;2.0s内存限制&#xff1a;1.0GB问题描述&#xff1a; 问题描述 春天到了&#xff0c;西西艾弗岛上的 n 块田地需要施…

Mysql之进阶宝典系列-视图

Mysql之进阶宝典系列-视图 一、视图是什么(what) 视图本质上是一个虚表&#xff0c;在数据库中不实际存在&#xff0c;它的所有数据来源于查询中所使用的表的数据&#xff0c;而且是在视图调用过程中动态生成的。视图只保存了SQL查询的逻辑&#xff0c;不保存SQL查询的结果。 …

HarmonyOS学习路之开发篇—数据管理(关系型数据库)

关系型数据库概述 关系型数据库&#xff08;Relational Database&#xff0c;RDB&#xff09;是一种基于关系模型来管理数据的数据库。HarmonyOS关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制&#xff0c;对外提供了一系列的增、删、改、查等接口&am…

深度学习-GPU多卡并行训练总结

1.为什么要使用多GPU并行训练 简单来说&#xff0c;有两种原因&#xff1a;第一种是模型在一块GPU上放不下&#xff0c;两块或多块GPU上就能运行完整的模型&#xff08;如早期的AlexNet&#xff09;。第二种是多块GPU并行计算可以达到加速训练的效果。想要成为“炼丹大师“&…