简介
最近工作中涉及到Envoy相关的内容,主要功能是做最大流量的CircuitBreak,这里简单介绍下使用方式,给出一个例子
安装和启动
先下载Envoy
1 | git clone https://github.com/envoyproxy/envoy.git |
添加下面的配置到service-envoy.yaml配置文件中
1 | circuit_breakers: |
启动Envoy以及两个服务
1 | docker-compose pull |
验证Envoy启动正常
1 | curl -v localhost:8080/service/1 |
验证CircuitBreak
首先安装wrk
1 | git clone https://github.com/wg/wrk.git |
然后执行压测
1 | ./wrk -t10 -c4 -d120s http://127.0.0.1:8080/service/1 |
在另外一个Terminal中执行tcpdump查看http return code(主要是wrk不提供返回码的统计)
1 | sudo tcpdump -i lo0 -A -vvv port 8080 | grep "service/1" |
通过结果可以看到返回码为503,同时,还增加了一个header:
1 | x-envoy-overloaded: true |
表示Envoy在触发circuit break后会返回503