赤峰市做网站建设的公司建设部网站官网考试
news/
2025/9/23 15:06:27/
文章来源:
赤峰市做网站建设的公司,建设部网站官网考试,玩转wordpress,如何做网站产品经理文章目录 场景描述优化思路分享资源 场景描述
接口需要从系统1查询数据#xff0c;查出的每条数据需要从另一个系统2中再去查询某些字段#xff0c;
比如#xff1a;从系统1中查出100条数据#xff0c;每条数据需要去系统2中再去查询出行数据#xff0c;可能系统1一条数… 文章目录 场景描述优化思路分享资源 场景描述
接口需要从系统1查询数据查出的每条数据需要从另一个系统2中再去查询某些字段
比如从系统1中查出100条数据每条数据需要去系统2中再去查询出行数据可能系统1一条数据对应系统2的10条数据这样数据量很大的情况下这个接口很慢如何解决
优化思路
结合业务考虑优化点 分页查询、批量操作 、异步 、多线程、sql优化、表索引等优化、es整合数据放ES里… 道友们有补充的可以评论下哈
这里的优化点优化1考虑分页查询 批量查询 优化2开启2个线程去查Future.get()会造成主线程阻塞也就是当所有future都得到结果后主线程才能继续执行下去示例代码
package com.song.controller;import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;/*多线程解决当前系统接口需要去另外2个查询数据并将数据拼接出来返回前端系统数据优化1分页查询 批量查询优化2开启2个线程去查Future.get()会造成主线程阻塞也就是当所有future都得到结果后主线程才能继续执行下去*/
public class DataFetcher {public String fetchDataFromSystem1() {// 查询系统1的数据逻辑String dataFromSystem1 Data from System 1;return dataFromSystem1;}public String fetchDataFromSystem2() {// 查询系统2的数据逻辑String dataFromSystem2 Data from System 2;return dataFromSystem2;}public String fetchDataFromSystems() throws Exception {ExecutorService executorService Executors.newFixedThreadPool(2);// 创建两个线程分别用于查询系统1和系统2的数据FutureString future1 executorService.submit(() - fetchDataFromSystem1());FutureString future2 executorService.submit(() - fetchDataFromSystem2());// 等待两个线程执行完毕String dataFromSystem1 future1.get();String dataFromSystem2 future2.get();// 拼接数据并返回结果String combinedData dataFromSystem1 | dataFromSystem2;return combinedData;}public static void main(String[] args) {DataFetcher dataFetcher new DataFetcher();try {String combinedData dataFetcher.fetchDataFromSystems();System.out.println(combinedData);} catch (Exception e) {e.printStackTrace();}}
}
分享资源
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912929.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!