代码改变世界

思考:网络服务的通用的架构注意点

2019-08-08 09:58  乘着风去破浪  阅读(153)  评论(0编辑  收藏  举报


思考:网络服务的通用的架构注意点
同个多线程加队列来提供网络服务的server端架构,其server的处理能力的一个重要指标是QPS,影响该指标有两个核心因素,一个是线程池的设置(一般设置为机器逻辑核数的2倍就可以,再调大意义不大),“缓存”任务的队列的大小也要合理设置,队列太长也没有意义,要结合调用端能够接受和容忍的最大时长,另外一个核心因素是单个任务的最大处理时长(要保证单个任务的时长要满足(线程池线程数一定的情况下)预期的QPS的要求,如果某个任务处理时长超过预期的也没最大值,要及时中断执行,快速返回(返回空结果也行,反正是“超时了”),因此优化的话可以往减少耗时的方向思考,比如能缓存尽量缓存,能空间换时间就空间换时间,和算法中的评价函数一样,设定好评价函数,然后朝着这个方向来思考和分析