soul 网关(十七): Hystrix 插件解析(一)

前言

Soul 网关上用以下四种插件实现了限流和熔断

  • rateLimiter 插件
  • Hystrix 插件
  • Sentinel 插件
  • resilience4j 插件

本文主要讲述 Hystrix 插件的配置。

1. 概念

断路保护就是形象的说就是家中电路上保险丝,当负载过大时,它就会跳闸,从而保护家中的线路和其他电器不会烧毁。

它的核心思想:

  • 在断路器对象中封装受保护的⽅法调⽤
  • 该对象监控调⽤和断路情况
  • 调⽤失败触发阈值后,后续调⽤直接由断路器返回错误,不再执⾏实际调⽤

2. 配置

2.1 启动 admin 后台,启动 bootstrap, 启动 examples 中的 http 服务器。

soul 代码
examples http 服务

2.1 开启 Hystrix 插件,配置好选择器, 配置好 rules。

开启插件
新增选择器
新增规则

配置选择器和规则时:名称是全局唯一的。如果配置了和其他插件一样的名称的话,会报错误。


名称全局唯一

2.2 这里采用 ab 压力测试,

ab -n 1000 -t 10 -c 200 "http://localhost:9195/http/test/findByUserId?userId=1"

测试结果

...
Concurrency Level:      200
Time taken for tests:   10.000 seconds
Complete requests:      10520
Failed requests:        10372
   (Connect: 0, Receive: 0, Length: 10372, Exceptions: 0)
Non-2xx responses:      10372
Total transferred:      1961296 bytes
HTML transferred:       1013332 bytes
Requests per second:    1051.98 [#/sec] (mean)
Time per request:       190.117 [ms] (mean)
Time per request:       0.951 [ms] (mean, across all concurrent requests)
Transfer rate:          191.53 [Kbytes/sec] received

然后观察 bootstrap 端的命令行会有以下日志

hystrix execute have circuitBreaker is Open! groupKey:0,commandKey:0

说明这时候 hystrix 已经开始生效了

坑点:之前采用的 Postman 的 Runner 机制跑的,但是这个是依次执行的,并不能很好的做压测。具体可以参考 postman接口测试和压力测试 这上面的回复。

总结:

  1. 了解熔断的机制才能更好的完成配置。
  2. 接下来会分析,Soul 是怎么利用 Hystrix 插件的
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容