rest - Tomcat 间 webapp 的 http 通信

标签 rest tomcat web-applications resttemplate

给定在同一个 Tomcat 6 上运行的两个 Web 应用程序。如果您从一个应用程序到另一个应用程序进行 http 调用,Tomcat 是否会“短路”此调用,或者它会在调用之前一直在 interwebz 上运行回家?

@thomasz 的回答表明需要更多细节。我们正在使用 Springs RestTemplate 进行通信。它的可插入架构允许您提供自己的 ClientHttpRequestFactory。

是否可以实现一个 ClientHttpRequest,如果请求是针对本地主机,它可以说服 tomcat 在内部处理它?<​​/p>

最佳答案

不会,请求会经过所有的层,包括环回接口(interface)。 Tomcat 不会以不同方式处理对同一 Web 容器的请求。毕竟,如何?您正在通过 URLConnectionHttpClient 或原始套接字或...访问某些 URL - Tomcat 必须以某种方式拦截(工具)您的应用程序代码并动态替换 HTTP 调用一些内部调用。可能,但非常复杂。

更糟糕的是,你很容易在高负载下造成死锁或饥饿。假设您的 Tomcat 工作线程池有 10 个线程,同时您从 10 个并发用户访问同一个 servlet。现在每个 servlet 都尝试连接到同一个 Web 容器,但工作线程池已耗尽。所以所有这些 servlet 都在阻塞,等待空闲的工作线程。但这永远不会发生,因为他们正在占领所有这些!

关于rest - Tomcat 间 webapp 的 http 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12114034/

相关文章:

java - Spring Boot 根 Controller 无法在 Tomcat WAR 上运行

jquery - iPhone 网络应用程序在来电被拒绝后卡住。为什么?可以做什么?

c# - .net 3.5 中的 WebFaultException 类

java - 如何使用 dropwizard 作为框架来记录 Restful API 调用的性能结果?

java - 在 Tomcat 上的 GWT 中加载属性文件

java - 使用 Tomcat 的 Active Directory LDAP 身份验证

java - 如何配置 log4j2 Web 应用程序

html - iOS 上滚动 iframe 解决,但 iframe 页面显示不完整

php - 与 PHP 一起使用 Node 作为 REST 服务器

api - 通过 API REST 获取 TeamCity 变更日志详细信息