使用连接池的Spring托管restTemplate和Spring Booth应用程序的性能

时间:2018-10-20 05:11:24

标签: java spring spring-boot

我有一个spring boot rest服务,在这里我使用restTemplate调用另一个spring boot rest服务。当restTemplate不使用连接池时,对于从服务A到服务B的每个请求,服务A在一段时间后开始显示更高的响应时间。 当我更改restTemplate实现以使用由spring管理的连接池时,在重负载下我看不到任何性能下降。

这是真的吗?当我没有连接池时,restTemplate使用的基础httpClient会根据请求打开和关闭服务B的连接,并且该线程由JVM处理?因此,对于繁重的工作,GC是否会通过暂停应用程序和降低系统性能而频繁地加入该程序?

还有一种印象是,使用由spring管理的连接池将使所有这些连接线程均由spring管理,并且不会影响GC?

还想知道当连接池被破坏时这些连接何时会线程化吗?在应用程序关闭期间?

请记住线程耗尽,尽管我认为即使更高的线程池端也不会导致线程耗尽,但是连接池可接受的最大池大小应该是多少?可以接受的更高的数字是多少?

请让我知道理论是否正确。

0 个答案:

没有答案