分布式微服务接口基于多线程进行性能优化

发布于:2025-02-11 ⋅ 阅读:(17) ⋅ 点赞:(0)

1.使用多线程与futureTask进行进行优化

1.1 实现流程图

1.2 代码逻辑模拟实现

public class OrderService {
   
   @Resource
   private RemoteService remoteservice;//远程过程调用(模拟类)

   @Resource
   private ExecutorService executorService;


  public Object order( long userId){

        JsonObject orderInfo =remoteService.create0rder(userId);

        Callable<JsonObject > call1 = new Callable<JsoNobject>(){
            
            @Override
            public JsonObject call() {
                JsonObject goodsInfo = remoteService.dealGoods(orderInfo);
                
                  return goodsInfo;

            }
        };

        Callable<JsonObject > call2 = new Callable<JsoNobject>(){
            
            @Override
            public JsonObject call() {
                JsonObject pointsInfo = remoteService.dealPoints(orderInfo);
                
                  return pointsInfo;

            }
        };

        Callable<JsonObject > call3 = new Callable<JsoNobject>(){
            
            @Override
            public JsonObject call() {
                JsonObject deliverInfo = remoteService.dealDeliver(orderInfo);
                
                return deliverInfo ;

            }
        };
        
        FutureTask<JsonObject> task1 = new FutureTask<JsonObject>(call1);
        FutureTask<JsonObject> task2 = new FutureTask<JsonObject>(call2);
        FutureTask<JsonObject> task3 = new FutureTask<JsonObject>(call3);
        
        executorService.submit(task1);
        executorService.submit(task2);
        executorService.submit(task3);
        
        
        orderInfo.putAll(task1.get());
        orderInfo.putAll(task2.get());
        orderInfo.putAll(task3.get())
        return orderInfo;
  }

}

1.3  实现逻辑描述

①将生成订单、修改库存、处理积分、发货等步骤拆分为子线程并行执行。

②使用Future和Callable实现多线程,获取子线程的返回值。

③通过FutureTask启动子线程,并获取结果。

2.后台批量处理的优化

2.1  实现逻辑描述

①.优化后端批处理的目标是在高并发场景下实现极致性能。

②.通过将单个请求转化为批量请求,以减少后端并发压力。

③.通过消息中间件(如MQ)和定时任务实现订单系统与商品系统之间的消息传递。

④.定时任务周期性运行,从MQ中获取数据并调用批量接口,提升处理效率。

⑤.采用异步处理方式,通过定时任务实现批量请求,提高整体性能。

⑥.定义Future类和Request对象,用于异步处理和批量请求,简化代码。

⑦.通过压测验证批量请求优化后的性能提升,确保优化方案有效。

⑧.优化后端接口调用次数,从一万次减少至十一次,显著提升处理速度。

⑨.通过限制批量请求数据量,确保定时任务运行稳定,避免数据堆积。

3.批量处理与mysql的综合性能优化

3.1 实现逻辑描述

①.展示了一个包含商品ID、商品名称、库存和价格的示例表。

②.通过SQL语句更新库存,展示了库存如何随商品ID的变化而变化。

③.批处理优化不仅仅是针对单个任务的优化,而是可以实现MySQL的综合优化。

④.通过批处理优化,可以提高数据库的处理能力,减少并发问题,从而提升整体性能。

⑤.通过应用层批处理优化,可以将多个请求合并为一个请求,减少数据库处理负担。

⑥.通过哈希表计数,可以实现对相同商品ID的库存进行批量更新,提高效率。

⑦.批处理优化在实战中的应用可以显著提升系统性能,特别是在高并发请求场景下。

 ⑧.结合业务需求和批处理优化,可以实现MySQL的极致优化,提升整体性能。


网站公告

今日签到

点亮在社区的每一天
去签到