首页 > 社交 > 科普中国

从20s优化到500ms,我用了这三招

常驻编辑 科普中国 2022-07-02 节点   线程   批量   接口   性能   评价   组织   业务   数据   系统
比如:之前查询500条记录,业务系统只调用一次查询接口。Dxl拜客生活常识网

现在改成业务系统每次只查100条记录,分5批调用,总共也是查询500条记录。Dxl拜客生活常识网

这样不是变慢了吗?Dxl拜客生活常识网

答:如果那5批调用评价查询接口的操作,是在for循环中单线程顺序的,整体耗时当然可能会变慢。Dxl拜客生活常识网

但业务系统也可以改成多线程调用,只需最终汇总结果即可。Dxl拜客生活常识网

此时,有人可能会问题:在评价查询接口的服务器多线程调用,跟在其他业务系统中多线程调用不是一回事?Dxl拜客生活常识网

还不如把批量评价查询接口的服务器中,线程池的最大线程数调大一点?Dxl拜客生活常识网

显然你忽略了一件事:线上应用一般不会被部署成单点。绝大多数情况下,为了避免因为服务器挂了,造成单点故障,基本会部署至少2个节点。这样即使一个节点挂了,整个应用也能正常访问。Dxl拜客生活常识网

当然也可能会出现这种情况:假如挂了一个节点,另外一个节点可能因为访问的流量太大了,扛不住压力,也可能因此挂掉。Dxl拜客生活常识网

换句话说,通过业务系统中的多线程调用接口,可以将访问接口的流量负载均衡到不同的节点上。Dxl拜客生活常识网

他们也用8个线程,将数据分批,每批100条记录,最后将结果汇总。Dxl拜客生活常识网

经过这次优化,接口性能再次提升了1倍。Dxl拜客生活常识网

从1s 左右,缩短到小于500ms。Dxl拜客生活常识网

温馨提醒一下,无论是在批量查询评价接口查询数据库,还是在业务系统中调用批量查询评价接口,使用多线程调用,都只是一个临时方案,并不完美。Dxl拜客生活常识网

这样做的原因主要是为了先快速解决问题,因为这种方案改动是最小的。Dxl拜客生活常识网

要从根本上解决问题,需要重新设计这一套功能,需要修改表结构,甚至可能需要修改业务流程。但由于牵涉到多条业务线,多个业务系统,只能排期慢慢做了。

相关阅读:

  • ssr链接怎么用(安卓手机ssr怎么添加节点)
  • ssr怎么设置(ssr加速器节点)
  • 节点是什么意思(手机怎么换节点)
  • 「数据结构之字典树Trie」C语言版本实现
  • 网宿科技股份有限公司2021年年度报告摘要300017
  • 《重生之门》热播背后:悬疑剧集寻求差异化,阿里影业自制
  • 互联网后端技术大全!建议收藏
  • A股下半年行情走势的沙盘推演!第一阶段结束时间会是7月
  • 成为国家新基建核心,边缘计算的魅力到底在哪里
  • 牛客网高频算法题系列合并两个排序的链表
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。