接口-削弱请求方式

导读:本篇文章讲解 接口-削弱请求方式,文章出自:https://blog.csdn.net/weixin_43316702/article/details/120100090希望对大家有帮助,欢迎收藏,转发!站点地址:www.javazhiyin.com.com

>>强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!

在接口对接过程中,接口请求过多的时候会导致无法接入接口或出现错误,这种高压环境导致的问题就需要削弱对接口的请求。

近期工作中就遇到了这么一个问题,请求量太大,一个小时内大概请求了接口几万次,起初采用的方法是创建一个临时表存储数据,设计一个线程存储被使用接口,若接口程序在被调用时,则将数据存入临时表,在存入临时表的同时返回提示,提示数据正在处理,这样的话请求方才不会因为没有响应出现问题,然后通过定时作业的形式取临时表参数去调用接口,如果某个数据重推时,发现数据库存在这样的参数则返回提示(数据已推送过,勿重复推送),若成功则修改数据状态,失败时记录失败原因。
但其实这样的做法并没有解决接口请求量大的问题,在高压环境下成功率只有30%左右,汗~。

在这里插入图片描述

第二次采用了削弱请求量的方式,通过设计一个批量接口,即数据封装成一个list进入批量接口,再通过批量接口去循环调用之前普通接口的服务,从而达到了削弱请求量的功能,但是这样也会出现一个问题,如果参数很大时,http请求在一定时间内没有收到请求则会返回超时,在高压环境下成功率大概在60%以上,如果有重推机制的时候第二次重推都完成了推送,基本实现了高压环境下的正常接入。
在这里插入图片描述

在第二次修改后其实在高压环境下已经基本满足,但是为了解决http长时间没有响应的问题,我一开始想到的优化是结合第一次修改的缓冲区,但是存入数据库的话,批量的数据量过于大,如果再去将批量的数据分开,又会浪费处理时间,害暂时没啥好方法了。
在这里插入图片描述

如果有更好的建议,希望提出来呀。