高并发场景下请求合并
需求分析
设备不停的上报请求数据,服务端需对上报请求数据监控,并入库。
常规流程是,对上报数据进行解析,经过controller层->service层-dao层,层层处理然后入库。
一条一条数据入库,会影响数据库性能,需调整为批量入库。
具体实现
网上主流的合并请求利用了LinkedBlockingDeque阻塞队列、ScheduledExecutorService定时执行线程池和CompletableFuture线程通信来完成了请求合并。
设备不停的上报请求数据,服务端需对上报请求数据监控,并入库。
常规流程是,对上报数据进行解析,经过controller层->service层-dao层,层层处理然后入库。
一条一条数据入库,会影响数据库性能,需调整为批量入库。
网上主流的合并请求利用了LinkedBlockingDeque阻塞队列、ScheduledExecutorService定时执行线程池和CompletableFuture线程通信来完成了请求合并。