【问题标题】:How to test thread-safety of RestTemplate?如何测试 RestTemplate 的线程安全性?
【发布时间】:2019-03-30 17:21:47
【问题描述】:

我了解 RestTempalte 一旦构建后是线程安全的,这在 StackOverflow 上的这篇文章中也有说明 Is RestTemplate thread safe?

但我希望能够测试这确实是线程安全的,我不知道如何去做,因为 restTempate 将用于调用服务而我不知道控制它要调用的服务,所以我不能暂停一个请求,然后同时发送另一个请求来测试它。我可以查看哪些其他选项?

我只想使用单例 restTemplate 实例进行 2 次调用并成功。这样做的要求是因为我希望这是可证明的。是否有任何内置的 RestTemplate 实用方法可以用来演示这一点?

【问题讨论】:

    标签: java resttemplate


    【解决方案1】:

    首先没有必要调用实际的服务。您可以编写自己的服务并同时调用它,然后停止它或任何您的计划。

    第二 - 在代码库之外测试代码是没有意义的。 RestTemplate 是线程安全的 - 无需证明。

    话虽如此 - 您可以创建一堆线程,在其中您可以调用对单个 restTemplate 实例的相同调用。您可以让线程休眠几秒钟,以“确定”restTemplates 调用将同时触发。

    提高一个抽象级别并使用ExecutorService(例如Executors.newFixedThreadPool(N);)并向其提交可调用对象(调用相同的restTemplate实例)。

    一些 JDK 外部选项是 JMeterconcurrent-junit

    【讨论】:

      猜你喜欢
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 2021-05-20
      • 1970-01-01
      • 2017-01-25
      相关资源
      最近更新 更多