gost
gost copied to clipboard
负载均衡算法优化建议
selector:
strategy: fifo
maxFails: 2
failTimeout: 30s
这是目前的负载均衡,根据发起请求是否死亡作为链路的评定标准,但是如果一个链路出现丢包的时候, 体验会急剧下降,这时候需要转移节点.
目前的负载均衡是无法对这种链路进行判断的. 以grpc协议为例,应该加一个最大延时的判断基准,以grpc ping的延时作为基准,
selector:
strategy: fifo
maxFails: 2
failTimeout: 30s
pingtime: 250ms
当ping的延时大于预设的250ms标记为节点死亡. 这样可以最大程度的反馈出当前链路的质量,并且快速的转移到优质备用节点.
出现卡的时候,往往是因为丢包了, 依赖tcp握手成败不能有效的反馈出链路的真实质量.
你需要的应该是基于延迟的节点选择策略。
你可以套一个haproxy ,用leastconn算法,优先选当前连接数少的。
每个节点后面加上check ,例如check inter 500 rise 3 fall 2 每隔500毫秒检测一次,连接失败连接标记失联,连续成功3次恢复