做了一个视频地址解析服务,传入各大网站的视频地址,返回视频源地址。需要实时抓页面爬取计算出视频真实地址。通常一个解析请求,服务器需要发送3-5次HTTP请求才可以得到最终结果并返回。正常情况下一次解析时间根据网络状况和对外请求次数在0.5s-3s不等(当然也有超时的)。
现在的情况是:使用uwsgi + gevent 50协程 x 4核,理论并发量是200,不过当瞬间量大的时候,经常一个解析过程需要10s甚至1min,请求队列经常占满,导致服务不可用了。
因为会有大量的对外请求,在日志中发现DNS会经常有错误,所以自己做了简单的DNS缓存;还分析了各大网站视频的时效时间,做了缓存在Redis上。
对于这种在实时服务中,需要大量对外请求的服务,有没有什么可以优化的地方?架构调整,服务器参数等?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/118468
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.