consistent_hash_with_group() skips tracing#753
Conversation
merge from sogou/workflow master
merge from sogou/workflow master
merge from master
| return NULL; | ||
|
|
||
| return this->check_and_get(addr, false, NULL); | ||
| return this->check_and_get(addr, false, tracing); |
There was a problem hiding this comment.
这个地方可以传tracing了?那么in_history的判断,好像就可以不用检查tracing==NULL吧?
1. 需求如果使用ConsistentHash,某台机器重启期间不希望牺牲n=max_failed个请求去把它熔断,而是每个请求可以配retry_max=2,可以保证每个请求第二次重试落到其他备机上。 2. 用法开发需要为这台机器配上group,server_type = 0,同一个group中为其加入server_type=1的backup。 3. 改动点当consistent_hash选取到该机器、网络发送失败、进行retry的时候,可以通过tracing避开这台机器。在consistent_hash_with_group()的最后,调用check_and_get(addr, false, tracing)中false表示为弱检查,即万一被选取的addr已达到max_failed: 4. 注意上次的一个改动:d0264e8 添加了一个判断,是在in_select_history()中避免tracing为NULL的情况,说是ConsistentHash的时候会传入NULL。 |
No description provided.