在使用
Spring Boot
开发过程中,并发
concurrency
问题不可避免。很多开发者存在这样的误区,使用
Servlets
为每个请求分配一个新的线程进行处理就不再需要并发处理了。我将在这篇文章中介绍如何在
Spring Boot
中处理并发并且如何避免一些问题。
Spring Boot 并发基础
接下来我们逐一介绍如何处理这些场景
Spring Boot应用程序的最大线程数量
共享外部资源
调用数据库或者第三方
Restful
接口可能需要很长时间。
异步方法调用
我们可能遇到一个请求会调用多个服务。比如一次请求调用
Service A、B、C
,你肯定不想这样调用:
Call service A -> Waiting response from Service A -> call service B -> Watiting ... -> Compose response from A B C
每个服务调用花费三秒,整个请求处理过程将会花费9秒。如果通过下面的做法肯定会更好。
Call service A
Call serviec B -> Waiting response from Service A B C -> compose reponse from A B C
Call serviec C
这样,显然我们只需要3秒响应。
异步和响应式微服务十分有趣,可以参考其他文章。这里我们只关注
Spring boot
。