spring cloud serverrequest 获取入参缓慢,优化策略
当 serverrequest 获取超过 800kb 的入参时,可能会遇到响应延迟的情况。具体来说,在转换入参过程中,从 “convert2” 到 “convert1” 的步骤可能需要 3 秒的时间。对于物联网设备上传大量工控数据(200 条数据,1mb 左右)的场景,这个问题尤其明显。
优化方法
针对这种情况,可以采用以下优化方案:
使用mono 类型的入参解析器:
request.body(BodyExtractors.toMono(List.class)).doOnNext(items -> { // 处理入参 });
这种方式可以通过将入参解析操作变为异步流程来提高效率。 spring webflux 会首先将请求体转换为 mono
通过这种优化,入参解析过程可以在后台进行,而不会阻塞请求响应。从而显着降低请求延迟,提高系统整体性能。