Soul源码总结-02-05

  • 跑通sentinel插件
  • 输出源码解析
  • 总结

Demo

首先启动项目soul-admin以及soul-bootstrap,以soul-examples中的soul-example-http为例,注册到soul网关上。同时检查soul-bootstrap是否引入sentinel的插件依赖:

        <dependency>
            <groupId>org.dromara</groupId>
            <artifactId>soul-spring-boot-starter-plugin-sentinel</artifactId>
            <version>${project.version}</version>
        </dependency>

在soul-admin插件管理中心开启sentinel插件在这里插入图片描述
同时配置selector以及相关的rule,这里以http://localhost:9195/http/order/findById?id=1为例,制定相应的限流熔断策略。
配置selector策略在这里插入图片描述
配置相关的rule
在这里插入图片描述
至此相关的配置已经完毕,接下来进行测试环节。

测试Sentinel插件

我们使用postman对http://localhost:9195/http/order/findById?id=1进行测试
在这里插入图片描述
正常情况下可以得到我们想要的结果。但是如果我们尝试在短时间内多次发请求,则会看到以下结果:
在这里插入图片描述
说明sentinel限流的作用已经生效。

源码解析

sentinel插件和其他插件相同,都会执行 AbstractSoulPlugin 类的 execute() 方法,然后在SentinelPlugin中覆写doExecute方法,核心代码如下在这里插入图片描述
可以看到sentinelhystrix相比原则比较简单:根据对应资源配置的规则来为资源执行相应的限流/降级/负载保护策略。如果触发熔断限流机制则会通过fallbackHandler来做服务降级处理。

总结

总体来说,配置sentinel插件时应该注意以下参数的配置:

  • 是否开启流控(1或0) :是否开启sentinel的流控。

  • 流控效果 : 流控效果(直接拒绝 / 排队等待 / 慢启动模式),不支持按调用关系限流。

  • 限流阈值类型 : 限流阈值类型,QPS 或线程数模式。

  • 是否开启熔断(1或0) :是否开启sentinel熔断。

  • 熔断类型: 熔断策略,支持秒级 RT/秒级异常比例/分钟级异常数。

  • 熔断阈值: 阈值。

  • 熔断窗口大小: 降级的时间,单位为 s。

  • 熔断URI: 熔断后的降级uri。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值