JS多线路选路方案

在公司实习一个月了,被分配过去搞预研项目,其中我负责对多线路选路代码进行优化。

拿到代码之后人都傻了,居然是JS得代码,我之前从来没有接触过JS。抱着必死的决心看完了整个代码,发现整个代码的逻辑混乱不堪,能正确选路才见着鬼了。我花了点时间修改逻辑并测试之后正确率大大的提高了。下面是我的优化的逻辑:


其实开始我使用的一次性选路方案,就是三条线路中看哪条线路提前完成十次请求(在服务器上请求一张1.9K大小的图片,我怀疑我手机上一些莫名其妙的图片就是这样来的,哈哈哈),其实这样准确度还是有,但是一碰到稍微复杂一点的环境就GG了,比如突然丢个包,或者突然延迟抖动一下,这些情况都将造成误判。当然,这些偶然情况是无法避免的,如果加大请求次数的话这会增加客户那边的流量浪费和时间浪费(试想一下,我就选个路线,你就用了我几M的流量,你开心么)。所以只能减小偶然事件对于整体的影响。上述的方案将对于整体的影响减小到局部的影响。

在完成后用WANEM广域网模拟器测试了一下,感觉正确率还是挺高(当然只是正常网络,那种变态的网络就另当别论了)。

整个JS代码比较长,我就不贴出来了,想要的可以邮箱我[email protected]

猜你喜欢

转载自blog.csdn.net/TDTO_O/article/details/80053198