java - 如何确保每个 API 调用都得到服务(排队 Rest API 调用)?

标签 java rest api spring-boot httpresponse

我正在 Spring Boot 中开发一个 REST API,我将在 1-3 秒内提供响应。我的 Controller 如下所示:

@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。我用JMeter进行了负载测试,一切正常。但是仍然有一些失败(并非所有API调用都得到服务)。那么我该如何克服这个问题?如何对到达的 API 调用实现任何队列或任何其他方法来确保每个 API 调用都得到数据响应?

最佳答案

您的意思是您希望确保所有请求都返回数据吗?!如果是,您可以使用@Async并获取CompletableFuture。然后在您的 Controller 中,您可以使用 CompletableFuture 来获取响应。如果出现故障,您可以设置超时并捕获异常以记录错误。

希望这有帮助。

关于java - 如何确保每个 API 调用都得到服务(排队 Rest API 调用)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44013579/

相关文章:

java - 错误: bad operand types for binary operator '=='

javascript - SoundCloud SDK/API 回调事件未触发

php - 从 PHP API 创建 REST API

java - 正则表达式: quotes within quotes

java - 从另一个包含太多工作表的 Excel 创建一个新的单工作表 Excel 文件

java - 添加类类型参数而不破坏客户端代码

javascript - Express、WS、WebSocket、Express-WS

Java REST多节点API设计

ios - 调试 API 请求

reactjs - 如何禁用来自 React Native API 的某些特定项目的可触摸不透明度