如何确保每个 API 呼叫都得到服务(Queueing Rest API 呼叫)?

How to make sure every API calls are served (Queueing Rest API calls)?

我正在 Spring 引导中开发一个 REST API,我主要在 1-3 内提供响应 sec.My 控制器如下所示:

@RestController
public class ApiController {
    List<ApiObject>  apiDataList;   

    @RequestMapping(value="/data",produces={MediaType.APPLICATION_JSON_VALUE},method=RequestMethod.GET)
    public ResponseEntity<List<ApiObject>> getData(){                                       
        List<ApiObject> apiDataList=getApiData();
        return new ResponseEntity<List<ApiObject>>(apiDataList,HttpStatus.OK);
    }
    @ResponseBody   
    public List<ApiObject>  getApiData(){
        List<ApiObject>  apiDataList3=new List<ApiObject> ();
        //do the processing
        return apiDataList3;
    }
}

所以我有 300 个用户同时加载 API.I 使用 JMeter 执行负载测试并且它 ok.But 仍然有一些失败(并非所有 API 调用都得到服务) .那么我该如何克服这个问题?如何在到达的 API 呼叫上实施任何队列或任何其他方法以确保每个 API 呼叫都用数据响应?

你的意思是要确保所有请求return的数据?!如果是,您可以使用 @Async 并获得 CompletableFuture。然后在您的控制器中,您可以使用 CompletableFuture 来获取响应。如果出现某些故障,您可以为其设置超时并捕获异常以记录错误。

希望对您有所帮助。