我想在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
}
答案 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/