WEB应用程序中的缓存线程池性能

时间:2019-03-21 15:35:24

标签: java spring multithreading concurrency threadpool

我有Spring Boot Application

它使用foreach中的restTemplate向其他服务器(副本)发送请求。唯一不同的是-网址。

在这种情况下,我认为我应该使用ExecutorService.newCachedThreadPool() foreach。

1 。我有一些@ Controllers具有相同的逻辑。我应该为申请使用单个ExecutorService还是为每个@ Controller单独使用ExecutorService
2 ThreadPool的行为-如果已达到最大大小,则没有空闲线程,并且队列已满,将启动拒绝策略。
我可以检查它还是仅用于处理异常?

1 个答案:

答案 0 :(得分:1)

如果您遇到这样的情况

一个应用在不同URL上的多个实例

AppInstance1 => localhost:8881
AppInstance2 => localhost:8882
...
AppInstanceN => localhost:888N

现在您可以在通用网址上定位所有这些应用,例如

http://localhost/

您可以使用任何负载均衡器,例如Nginx

做什么负载均衡器会根据配置的算法将您的请求重定向到其他服务器

例如循环赛

因此,当用户点击http://localhost/user/1

AppInstance1AppInstance2 ..可以满足此请求