JAVA全系列 教程
3762个小节阅读:7088.3k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
链路流控模式指的是,当从某个接口过来的资源达到限流条件时,开启限流。它的功能有点类似于针对来源配置项,区别在于:针对来源是针对上级微服务,而链路流控是针对上级接口,也就是说它的粒度更细。
配置示例:
例如有两条请求链路:
如果只希望统计从/test2进入到/common的请求,则可以这样配置:
需求:有查询订单和创建订单业务,两者都需要查询商品。针对从查询订单进入到查询商品的请求统计,并设置限流。
在支付服务中,给PaymentService类添加一个queryGoods方法:
xxxxxxxxxx
public void queryGoods(){
System.err.println("查询商品");
}
xxxxxxxxxx
@GetMapping("/query")
public String queryOrder() {
// 查询商品
orderService.queryGoods();
// 查询订单
System.out.println("查询订单");
return "查询订单成功";
}
在支付服务的PaymentController中,修改/order/save端点,模拟新增订单:
xxxxxxxxxx
@GetMapping("/save")
public String saveOrder() {
// 查询商品
orderService.queryGoods();
// 查询订单
System.err.println("新增订单");
return "新增订单成功";
}
默认情况下,OrderService中的方法是不被Sentinel监控的,需要我们自己通过注解来标记要监控的方法。
给OrderService的queryGoods方法添加@SentinelResource注解:
xxxxxxxxxx
@SentinelResource("goods")
public void queryGoods(){
System.err.println("查询商品");
}
链路模式中,是对不同来源的两个链路做监控。但是sentinel默认会给进入SpringMVC的所有请求设置同一个root资源,会导致链路模式失效。我们需要关闭这种对SpringMVC的资源聚合,修改application.yml文件。
xxxxxxxxxx
spring:
application:
name: payment-provider-sentinel
cloud:
nacos:
discovery:
# Nacos服务地址
server-addr: 192.168.66.100:8848
sentinel:
transport:
# Sentinel控制台地址
dashboard: 192.168.66.100:8888
# sentnel api端口号 默认 8719
port: 8719
# 关闭context整合
web-context-unify: false
重启服务,访问query和save,可以查看到sentinel的簇点链路规则中,出现了新的资源。
点击goods资源后面的流控按钮,在弹出的表单中填写下面信息
实时效果反馈
1.下列描述Sentienl流控模式链路模式正确的是_____。
A 针对来源配置项
B 快速失败
C 你的锅我来背
D 以上都错误
答案
1=>A