3 Star 1 Fork 0

唯品会 / vdl

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
flow_control.md 2.19 KB
一键复制 编辑 原始数据 按行查看 历史
flike 提交于 2018-12-03 10:18 . first commit

VDL流控操作手册

1.概述

VDL流控分为写流控、end up read流控与catch up read流控,每种流控又分为request次数流控与流量(byte)流控。通过vdlctl,可以打开/关闭VDL的流控,也可以设置对应的流控值。

现阶段,vdlctl流控的操作对象是VDL进程,所以现阶段,对集群的流控设置需要分别对集群中每个VDL过程分别进行设置。

2.查看流控设置

使用vdlctl,可以查看VDL进程的流控设置。

./vdlctl rate list --endpoints=http://localhost:9000
 
结果:
IsEnableRateQuota      : true    //注释:否打开流控 ,默认关闭
WriteRequestRate       : 50000   //注释:写入request数量控制
WriteByteRate          : 5000000 //注释:写入byte流量控制
CatchupReadRequestRate : 10000   //注释:catchup read request数量控制
CatchupReadByteRate    : 500000  //注释:catchup read byte流量控制
EndReadRequestRate     : 1000    //注释:end read request数量控制
EndReadByteRate        : 524288000 //注释:end read byte流量控制

其中,指令中的endpoint为需要查看的VDL进程对应的listen-admin-url

3.设置流控

使用vdlctl,可以更新VDL进程的流控设置。

./vdlctl rate update EndReadRequestRate=1,IsEnableRateQuota=true,CatchupReadRequestRate=1 --endpoints=http://localhost:9000
 
结果:
========Update Rate Success! Updated Config========
IsEnableRateQuota      : true
WriteRequestRate       : 50000
WriteByteRate          : 5000000
CatchupReadRequestRate : 1
CatchupReadByteRate    : 500000
EndReadRequestRate     : 1
EndReadByteRate        : 524288000

在rate update中,可以一次更新多个流控参数,如上述例子所述,每个流控参数通过逗号分开。VDL会预先对所有流控参数进行检查,若流控参数不正确,则直接返回错误,不会做任何更新。如:

./vdlctl rate update EndReadRequestRate=1000,IsEnableRateQuota=true,CatchupReadRequestRatexxxx=1000 --endpoints=http://localhost:9000
 
结果:
Error:  rpc error: code = Unknown desc = Cannot found any config for CatchupReadRequestRatexxxx
 
VDL不会对EndReadRequestRate与IsEnableRateQuota进行更新
Go
1
https://gitee.com/vipshop/vdl.git
git@gitee.com:vipshop/vdl.git
vipshop
vdl
vdl
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891