我有Spring Boot Application
。
它使用foreach中的restTemplate
向其他服务器(副本)发送请求。唯一不同的是-网址。
在这种情况下,我认为我应该使用ExecutorService.newCachedThreadPool()
foreach。
1 。我有一些@ Controllers
具有相同的逻辑。我应该为申请使用单个ExecutorService
还是为每个@ Controller
单独使用ExecutorService
?
2 。 ThreadPool
的行为-如果已达到最大大小,则没有空闲线程,并且队列已满,将启动拒绝策略。
我可以检查它还是仅用于处理异常?
答案 0 :(得分:1)
如果您遇到这样的情况
一个应用在不同URL上的多个实例
AppInstance1 => localhost:8881
AppInstance2 => localhost:8882
...
AppInstanceN => localhost:888N
现在您可以在通用网址上定位所有这些应用,例如
http://localhost/
您可以使用任何负载均衡器,例如Nginx
做什么负载均衡器会根据配置的算法将您的请求重定向到其他服务器
例如循环赛
因此,当用户点击http://localhost/user/1
AppInstance1
或AppInstance2
..可以满足此请求