我快速浏览了 Feign 的源代码,发现它使用 JDK 的
HttpUrlConnection
发出 HTTP 请求,并在请求完成后关闭它,而没有使用连接池。我对这种方式的效率存疑。然后我读了 Spring 的 RestTemplate
文档,文档中提到 RestTemplate
可以切换到 Apache Http Client 或者 OKHttp 来发送 HTTP 请求:
注意: 默认情况下,RestTemplate 依赖于标准的 JDK 工具来建立 HTTP 连接。通过 HttpAccessor.setRequestFactory(org.springframework.http.client.ClientHttpRequestFactory) 属性,您可以切换到使用其他的 HTTP 库,例如 Apache HttpComponents、Netty 和 OkHttp。
这是否意味着在性能方面,RestTemplate 比 Feign 更好?