ddd*_*ddd 9 rest multithreading spring-data-jpa spring-boot amazon-elastic-beanstalk
我正在使用部署在AWS Beanstalk上的Spring Boot开发Rest API.这项服务可能每天都会受到成千上万客户的欢迎.因此,我想了解Spring Boot处理多个请求的能力.
从我在Spring-Boot中读到的内容:同时处理多个请求以及如何在Spring引导中拥有线程安全控制器,看起来Spring Boot可以在控制器线程安全的同时处理请求.
如果同时向同一端点发出两个请求以进行更新,控制器是一个接一个地处理请求还是同时处理两个并行线程?如果是后者,每个线程都有自己的实体管理器吗?有没有办法实现线程池来根据EC2实例的容量限制线程数?顺便说一下,我如何根据估计的请求数量决定一个实例应该有多大?
小智 11
是的,Spring引导可以同时处理请求!您可以通过添加server.tomcat.max-threads
到application.properties
或来限制并发请求的数量application.yml
.Spring将管理连接池并处理实体管理器的分发(根据您在属性中指定的最小和最大连接数).我相信你可以在这里阅读更多相关内容:什么时候连接返回到连接池与Spring JPA(Hibernate)实体管理器?
如果您正在使用 Spring Boot 开发 Web 应用程序(我的意思是您已将 的依赖项包含spring-boot-starter-web
到您的 pom 文件中),Spring 将自动嵌入 Web 容器(默认为 Tomcat)并且它可以像普通 Web 容器一样同时处理请求。
并且您还可以通过修改依赖项将默认 Web 容器从 Tomcat 更改为 Undertow 或 Jetty。
正如@Felipe Mariano 所说,您可以在下面的配置文件中限制不同 Web 容器的最大工作线程数。
(1) 对于 Tomcat:server.tomcat.max-threads
(2) 对于 Undertow:server.undertow.worker-threads
(3) 对于 Jetty:server.jetty.acceptors
归档时间: |
|
查看次数: |
15317 次 |
最近记录: |