Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
性能调整springrest模板_Spring_Spring Boot_Connection Pooling_Resttemplate - Fatal编程技术网

性能调整springrest模板

性能调整springrest模板,spring,spring-boot,connection-pooling,resttemplate,Spring,Spring Boot,Connection Pooling,Resttemplate,背景:我正在使用带嵌入式jetty的spring boot。我的应用程序调用了一堆RESTAPI。为了调用这些RESTAPI,我使用SpringREST模板。 问题:SpringREST模板是否擅长于高并发性?在网络搜索上搜索意味着转向反应式,但仍有一些应用程序是以阻塞方式编写的,需要以这种方式继续。问题是有什么替代方案,或者可以做些什么使rest模板在重负载下更具响应性。PooLink HTTPclipse连接管理器改进了一些东西,但本质上仍然不符合要求。p> 有人建议转移到rest easy

背景:我正在使用带嵌入式jetty的spring boot。我的应用程序调用了一堆RESTAPI。为了调用这些RESTAPI,我使用SpringREST模板。 问题:SpringREST模板是否擅长于高并发性?在网络搜索上搜索意味着转向反应式,但仍有一些应用程序是以阻塞方式编写的,需要以这种方式继续。问题是有什么替代方案,或者可以做些什么使rest模板在重负载下更具响应性。PooLink HTTPclipse连接管理器改进了一些东西,但本质上仍然不符合要求。p>
有人建议转移到rest easy和其他http客户机,但背后没有任何理由。一天结束时,它们都建立了连接池,基本上都是一样的。请注意,反应式还不是一种选择。这个问题对于传统的阻塞rest调用非常特殊。任何关于优化连接池或正确使用rest模板的建议都会大有裨益。

RestTemplate本身并不执行实际的rest调用,它只是一个“包装器”——一个方便的API

现在说到连接池,默认情况下它不使用任何类型的池,只打开Java中可用的URL连接。不需要第三方,但性能不太好

您可以将rest模板配置为在后台使用OkHttp客户端。以不同的方式与不同的客户合作。有趣的是,可以在那里配置连接池并获得更好的性能

因此,您应该真正检查预期的性能,并相应地配置连接池

现在,关于反应性的东西还有一件事——它不会给您带来性能提升,但是它可以通过更高效地重用资源来更好地服务多个并发请求。但是,如果您要测量执行一个请求所需的时间,则不希望执行得更快


换句话说,如果应用程序有太多的并发请求不能转换,那么您应该考虑转换到反应堆栈,但是如果您想更快地处理每个请求,就不要考虑。它从

clienthttpprequestfactory
实现中获得HTTP连接,这是将低级HTTP客户端库粘合到Spring的原因,例如,Apache HTTP客户端的
HttpComponents客户端HttpRequestFactory

总之,在大多数情况下,当您将传出请求调优为外部API时,您必须调优底层的低级HTTP客户端库,而不是
RestTemplate


你在问题中混淆了很多概念。在开始调整任何内容之前,请尝试了解、和是什么。否则,您将找不到代码的瓶颈在哪里,最终将调优软件堆栈的错误部分。

谢谢。我会尝试你的建议。我认为问题的一部分是关于不使用反应式WebFlux而不是反应式编程。最终RestTemplate将被弃用,并将被被动WebFlux取代。但要继续反对,还有很长的路要走。如果有人想更多地了解反应式(org.springframework.web.Reactive.client.WebClient)。请点击此链接