【发布时间】:2014-06-18 12:17:35
【问题描述】:
我遇到了一个非常奇怪的性能差异。 我正在本地机器上运行负载测试。 2 个不同的 Web 应用程序通过 spring 的 restTemplate 进行通信。(单个 tomcat 服务器运行两个 Web 应用程序)
这是一个只有 100 个并发玩家的“负载测试”中的奇怪流程:
A) webapp#1 使用以下调用:
GameResponseDTO result = template.postForObject(
URLS.GAME_SERVER_URL + "/GameServer/game/play/",
gameRequestDTO,
GameResponseDTO.class);
B) webapp#2 控制器接收到这个 rest 调用并在不到 100 毫秒后返回一个结果对象!
C) 即使 webapp#2 的句柄用时不到 100ms,结果也会在 9000ms 后返回到 webapp#1!
- 问题:
1) 有什么想法会导致这种情况吗?请记住,这两个应用程序都在同一台机器上(没有真正的网络持续时间)
2) 关于我还应该检查什么有什么想法吗?
3) 这个问题可能是由@Transactional \ json 响应的编组引起的吗?如果是这样,我该如何测试? 谢谢!
【问题讨论】:
-
堆栈溢出有一个类似的问题(不是重复的):stackoverflow.com/questions/17277138/…
-
webapp2中的100ms是怎么计时的(测量的起点和终点是什么)?
-
我在调用到达控制器后立即开始测量,一旦控制器从服务接收到结果对象,我就结束时间测量。 (控制器 -> 服务 -> 控制器)
标签: java spring spring-mvc load resttemplate