You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@brpc.apache.org by GitBox <gi...@apache.org> on 2019/06/21 13:46:40 UTC
[GitHub] [incubator-brpc] gtarcoder commented on issue #820: LALB 策略可能落入死循环
gtarcoder commented on issue #820: LALB 策略可能落入死循环
URL: https://github.com/apache/incubator-brpc/issues/820#issuecomment-504431688
发现程序的运行路线是这样的:
1. 下游服务端频繁超时
2. 客户端每次RPC 后会 FeedBack ( src/brpc/policy/locality_aware_load_balancer.cpp/Feedback) 更新节点的weight
3. 节点不断被降权
4. 最终节点的 _base_weight 变成了0 ,从而节点被disable
5. 在 SelectServer 中,始终走到如下分支逻辑,
在 AddInflight 中,会直接返回 {false, 0}. (由于节点被disable)

所以,每次都无法select 出来节点。
6 . 无法select节点,就无法IssueRPC,节点的weight 就无法通过 Feedback 来进行更新, 节点就一直无法被选择,从而一直报 [E112]Fail to select server from list:// (即使下游服务已经恢复)
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@brpc.apache.org
For additional commands, e-mail: dev-help@brpc.apache.org