镜像详情地址:https://cloud.hainiubl.com/#/excellentImageDetail?id=25229&imageType=excellent
点击镜像详情页面最下方的“添加到实验配置”按钮可直接运行该实战镜像
一、需求说明
现在有一张商品订单信息表,需要根据表中购买者姓名和订单编号这两个字段去调用外部接口(外部接口一次只能校验一条数据),校验之后还需要更新商品订单状态,现在是单线程实现该功能,随着数据越来越多性能越来越低。这是一个真实面试的笔试题,如果是你该如何提升性能?
二、环境介绍
机器介绍
- 单线程效率问题镜像:共需要3台机器
- 一台6核8GB内存的机器:Idea
- 一台1核1GB内存的机器:Mysql
- 一台1核1GB内存的机器:RabbitMQ
流程介绍
- 为什么使用线程池解决单线程效率问题?
从需求中我们可以知道,调用的外部接口一次只能校验一条数据,这就说明,当要更新多条订单状态时,可以分成一个一个任务去执行,也就是说,可以充分利用服务器多核cpu来并行调用外部接口处理业务,简单理解就是可以同时校验多条数据,从而提高执行效率,解决单线程执行效率低的问题。
组件介绍
- 该案例采用SpringBoot+RabbitMQ+MyBatis+数据库(MySQL)来演示需要优化的接口
- 该案例采用SpringBoot+RabbitMQ+MyBatis+线程池+数据库(MySQL)来演示优化后的接口
您没有该镜像的运行权限,所以无权查看该笔记
版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海汼部落-海牛博士,http://hainiubl.com/topics/76607