当前位置: 首页 > article >正文

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

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的极致优化,提升整体性能。


http://www.kler.cn/a/540727.html

相关文章:

  • 二、通义灵码插件保姆级教学-IDEA(使用篇)
  • python卷积神经网络人脸识别示例实现详解
  • 【多模态大模型】系列3:语义分割(LSeg、GroupViT)
  • 【go】交叉编译
  • openAI官方prompt技巧(一)
  • 【SQL server】关于SQL server彻底的卸载删除。
  • 蓝桥杯试题:冒泡排序 选择排序
  • 六.logback记录日志文件并按大小日期分割文件
  • 操作系统调度算法解析(SJF)
  • EtherNet/IP转Modbus TCP实现三菱变频器与西门子PLC通讯的配置案例
  • 从零复现DeepSeek R1:从V3中对MoE、MLA、MTP的实现,到Open R1对R1中SFT、GRPO的实现
  • ESP8266配置为TCP客户端,连接电脑和手机(使用Arduino配置)
  • javaEE-10.CSS入门
  • 【Elasticsearch】管道聚合
  • SpringBoot源码解析(十):应用上下文AnnotationConfigServletWebServerApplicationContext构造方法
  • 相对收益-固定收益组合归因-前言
  • 纯前度(vue)实现对pdf\mp4\png\jpg\jpegxls\doc\txt文件预览,无需要转化
  • Android图片加载框架Coil,Kotlin
  • 国税局发票查验中英文验证码识别,识别率99.99%
  • 十四. Redis 新功能
  • day10-字符串
  • Spring Boot 与 Kafka 实现高效消息队列通信的最佳实践
  • flutter ListView Item复用源码解析
  • 亲自测试并推荐的第三方平台使用DeepSeek 和 LM Studio 本地部署DeepSeek
  • AI刷题-子数组和的最大值问题
  • 【Java 面试 八股文】Redis篇