8317073的gravatar头像
8317073 2020-07-27 17:52:21

关于接口并发

我现有有一个接口,这个接口主要干的事就是别人传送json,然后我解析之后插入数据库,因为要先查数据库是否有这条数据,所以没用用批量插入,而是单条,我用了线程池,一个线程插入30条,我用postman测试这个接口插入100条不到1秒。

现在我得问题是测试用压测测试我的接口,他模拟50个用户访问这个接口,每次访问都是插入100条。他测试后的接口是50个用户最大响应时间48秒,平均响应25秒,我觉得这个不合理吧?如果合理,我应该怎么优化阿?请个大佬指点下。

所有回答列表(4)
遇见,的gravatar头像
遇见,  LV36 2020年7月29日

用消息队列

评论(0) 最佳答案
FlyHeLanMan的gravatar头像
FlyHeLanMan  LV11 2020年8月3日

首先压测结果是合理的,因为高并发而造成的原来一个不是很耗时的接口变得很耗时这个场景很常见,看你的描述大概率是因为高并发跟数据库交互造成的慢,可以先看看数据库是否可以使用索引优化,如果只是简单的判断数据库是否有这条记录,没有就写入,有就走另一套逻辑,完全没必须一条数据跟数据库交互一次,可以用一个集合100条数据查一次数据库,然后拿出来数据库存在的处理一个逻辑,数据库不存在的走另外一个逻辑,总之尽量减少跟数据库的交互。

请叫我小C的gravatar头像
请叫我小C  LV19 2020年8月5日

smiley

1.首先你设置你的程序瓶颈在什么地方,就是最高能跑多少线程而且响应在一定的时间内(可以是2s)

2.在保证线程响应速度的前提下,可以采取熔断处理,或者楼上说的消息队列

666ttttff的gravatar头像
666ttttff  LV2 2020年8月9日

学习一下

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友