Soul网关源码探秘《十六》 - Hystrix插件初探

今天尝试配置使用 Hystrix 插件,并体验它的功能。

配置插件

在 soul-bootstrap 的 pom.xml 文件中启用 Hystrix 的依赖。

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

然后在 soul-admin 后台启用 Hystrix 插件。启动一个 soul-examples-http 服务。

之后在插件列表 hystrix 的配置页面添加一个选择器。

hystrix选择器
选择器作为对流量的第一次筛选,配置哪些请求要经过 Hystrix 插件。之后再添加一条规则。
Hystrix规则
/http/order/findById 这一个请求设置对流量的第二次筛选规则。其中跳闸最小请求数量设置为1,最大并发量设置为3,数值都比较小。都是为了一会儿压测时更块的出发熔断逻辑,能进入到Hystrix 插件的逻辑中。

压测

直接压测soul-examples-http服务
wrk -t 8 -c 32 -d 60s http://192.168.31.34:8192/order/findById\?id\=5

### 结果
Running 1m test @ http://192.168.31.34:8192/order/findById?id=5
  8 threads and 32 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     8.19ms   30.67ms 512.56ms   96.25%
    Req/Sec     1.43k   508.60     2.82k    72.67%
  676131 requests in 1.00m, 71.57MB read
Requests/sec:  11249.44
Transfer/sec:      1.19MB
通过网关访问
wrk -t 8 -c 32 -d 60s http://192.168.31.34:8192/http/order/findById\?id\=5

### 结果
Running 1m test @ http://192.168.31.34:9195/http/order/findById?id=5
  8 threads and 32 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    77.37ms  100.93ms   1.65s    91.56%
    Req/Sec    74.12     37.96   212.00     68.18%
  33841 requests in 1.00m, 6.04MB read
  Socket errors: connect 0, read 0, write 0, timeout 3
  Non-2xx or 3xx responses: 26792
Requests/sec:    562.95
Transfer/sec:    102.92KB

可以看到通过网关压测时,发送了33841个请求,只收到了26792个响应。而且RPS为562,相比直接访问后端服务的11249降低了不少。

另外在压测网关时,直接通过Postman访问,返回了两种类型的错误。
error1

error2
目测应该是没有配置正确,网关层报错了。需要继续找找原因。

总结

Hystrix 是 Netflix 开源的熔断中间件。今天初步配置了 soul 网关中怎么集成 Hystrix 插件来实现熔断、服务降级等功能。后续研究 Hystrix 插件在 soul 网关插件链中的执行逻辑以及 Hystrix 的部分源码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rughru

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值