App请求完整回路
从App发起一个request到达服务器,到服务器处理,最后处理完毕结果返回给App,这三步组成App请求的一条完整回路。
这条回路上的所有消耗时间相加,为请求的完整时间。
自动选择最佳服务器方案
前提:服务器列表文件。
1、设计一个A接口,没有入参,返回1。
2、App第一次启动时,遍历服务器列表去访问A接口,计算哪个域名访问的最快。可以多次访问取平均值,更准确。
3、当网络环境变化时,也需要执行上述操作,为了防止频繁执行此操作,可以设置策略:设置一个缓存,记录最后一次测算每种环境的时间,确保 x 小时内不会多次执行。
弊端
这样可能会造成App认为网络环境最好的所对应的那个服务器访问速度最快,于是这台服务器的CPU迅速被沾满。。。无法正常处理以后的请求。
解决
把服务器的处理能力划分为:低、中、高级别。在A测试接口中返回给App。当CPU要撑不住的时候。即使网络很好,也不能采用这个域名对应的服务器。