多活并行的一个隐患是,池子里有一条状态不好的线,它不会让整组停摆,但会把整组的表现拉低。表现是整组的平均延迟变高、失败变多,一查发现是某一条线在拉后腿。避免这件事,靠的是几个机制。
- 分权:每条线分到的流量不一样,表现差的少分
- 观察窗:新线先少分流量,观察几天再加
- 定期体检:按周看每条线的失败次数和延迟
分权怎么做
给每条线一个权重,权重跟着表现走。表现稳定的线多分一点,偶有波动的少分一点。权重不是固定的,每次体检之后可以微调。这样做的结果是,一条状态变差的代理IP会自然地被挤到边缘,不需要等到它彻底不可用才处理。权重调整要记下来,不然过一段时间没人知道某条线为什么只分到很少的流量。
- 权重
- 每条线分到的流量比例,跟着表现调整
- 体检
- 按周看失败次数和延迟,作为调权重的依据
- 挤边
- 状态持续变差的线分到的流量越来越少,最后自然摘除
状态差的线,让它自己退到边上。
体检看哪几项
只看两项:失败次数和平均延迟。失败次数看的是稳定性,平均延迟看的是体验。两项都正常但号群表现还是差,说明问题可能在号群本身而不在线上,这时候要换方向查。代理IP的体检和号群的体检分开做,两边的数据放一起看才能对上。
权重和体检这两件事要有人负责。没人负责的时候,权重表定了就再也没动过,状态变差的线一直挂着同样的权重,体检也只是看一眼数字。指定一个人的好处是,数字变化有人跟,调整有人做,记录也有人留。代理IP的线池管理就是一份需要维护的清单,不维护就会慢慢偏离实际。
荒野乱斗的号群把分权和体检固定成常规动作,一条线拖累全组的情况会少很多。
