这次咱们从根源聊:16招搞定高并发架构设计( 七 )

极端一点的例子

对于很多广告系统需要进行计费处理,对于一些增长用户行为数据分析平台需要接收客户端上传的各种事件进行分析,如何可以抗住100万TPS的并发进行处理?最简单的方式就是直接搞10台Nginx负载均衡,Nginx只是记录AccessLog返回200(单机抗住10万TPS一点不是问题),后续由定时任务拉取AccessLog进行数据分析。

3、任务并行化

指的是让任务中的子任务并行执行,这样会比一个一个串行执行子任务来的快。

比如可以把多个子任务提交到线程池执行,然后等待所有任务都完成后进行结果汇总,这样总的耗费时间就是最慢的那个子任务的执行时间。

可以使用Java8的CompletableFuture进行任务编排处理。

这种使用任务并行化来提升处理性能的方式我个人不太常用,如果任务执行时间不是那么长的话,我还是宁愿串性执行,比较容易少出错,毕竟这些任务都是有状态的需要等待结果的,这和之前说的异步不是一回事。

推荐阅读