【问题标题】:Spring MVC With RestTemplate - unexplained delay on post (load test)带有 RestTemplate 的 Spring MVC - 发布时无法解释的延迟(负载测试)
【发布时间】: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


【解决方案1】:

请检查结果对象的大小以及它是否包含除 java p 原语以外的任何复杂成员变量

【讨论】:

  • 我发送的对象有 2 个字段(整数)
猜你喜欢
  • 2012-04-18
  • 2019-10-22
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多