Spring Boot中定义的REST API是否自动处理多线程

时间:2019-04-05 04:43:45

标签: java rest spring-boot

我想在Spring Boot中创建一个REST API,该API可以处理大约100TPS。可以说,我在Spring Boot中使用示例应用程序创建了一个基本的REST api。这会自动处理多线程吗?让我们考虑下面的代码。

@RequestMapping(method = RequestMethod.POST, value="findByPackageActivationId")
@ResponseBody
public JSONObject findByPackageActivationId(@RequestBody IncomingRestObject incomingRestObject) {
    //My work here
}

4 个答案:

答案 0 :(得分:2)

默认情况下,Spring Boot Web应用程序是多线程的,将同时处理多个请求.REST控制器是多线程的,因为DisptcherServlet同时处理来自客户端的多个请求并使用相应的控制器方法进行服务。您可以更改任何默认线程设置(例如server.tomcat.max-threads)。有关更多信息,请参见此处:-

https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc

答案 1 :(得分:0)

对于来自客户端的每个请求,服务器将创建一个新线程并将该请求分配给新创建的线程。您不必显式处理此问题。

您也可以根据需要(100个线程)在服务器上进行配置。您可以将此link用于tomcat配置作为其spri的默认服务器。

答案 2 :(得分:0)

REST控制器是多线程的,因为DisptcherServlet同时处理来自客户端的多个请求,并使用相应的控制器方法进行服务

您可以根据需要扩展应用程序以达到所需的TPS

答案 3 :(得分:0)

Spring框架在内部提供了这些功能,这些是Spring提供的优势,它们优于我们过去使用的核心Servlet编码。它还提供了控制它的方法。 对于Ex,您可以更改使用server.tomcat.max-threads(对于tomcat)创建的线程数限制。

有关使用Spring Boot进行多线程处理的基本知识,请参考https://www.e4developer.com/2018/03/30/introduction-to-concurrency-in-spring-boot/