目录
熔断报这个错误 在调用程序中检测即可
页面配置熔断,配置在 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
持续更新
相关连续性章节在通分类博客下