【问题标题】:Wso2 ESB - Send many requests at the same time to a web serviceWso2 ESB - 同时向 Web 服务发送多个请求
【发布时间】:2012-12-29 07:19:49
【问题描述】:

如何将多个 Java 客户端的并发 Java 请求发送到已部署的 Web 服务?知道客户端是从 WSO2ESB 生成的。

【问题讨论】:

  • 您是打算对 Web 服务进行某种性能分析,还是只想拥有一个多线程客户端?
  • 您好,尊敬的先生。正如您所说,我的目标是通过同时发送许多请求来对 Web 服务进行性能分析,并查看 ESB 的行为。谢谢。

标签: java client benchmarking esb wso2esb


【解决方案1】:

如果您不需要为每个请求编写自定义逻辑,我会更喜欢 SoapUI 或 LoadUI 之类的东西。使用它们很容易创建一种压力测试。 如果您需要创建自定义测试,您可以自己编写:

  1. 生成客户端
  2. 使用 ThreadPool 创建任意数量的线程
  3. 如果您的网络服务上的操作是双向的 - 测量从发送请求到获得响应的时间
  4. 收集统计信息(这有助于您了解您的 esb 模块是否能够应对负载)

【讨论】:

  • 你好。我通过 wso2 的给定选项生成了客户端(我创建了一个axis2 WS)。然后我获得了 2 个类,其中一个叫做 HelloServiceStub.java。我创建了一个名为“Consumer.java”的普通 Java 类,它允许设置提供程序参数(给出处理时间)。我有一个问题:我的消费者必须是线程吗?
  • 一切如你所愿,实现细节可以有所不同。当我必须处理类似的任务时,我创建了运行我的任务的执行器,它消耗了 web 服务。无论如何,我不会扩展 Thread,而是实现 Runnable。 ExecutorsService 适用于 Runnable 而不是 Thread。它还允许您构建自己的层次结构,而无需锁定父类。
【解决方案2】:

有几种选择:

  • 编写您自己的基准驱动程序 - 这很简单,您可以完全控制测量的内容和方式。

  • Web 服务工具 - Web 服务器通常带有某种形式的压力测试客户端,您可以直接从 Web 服务器控制台使用,或者您可以尝试例如SoapUI。

  • Http Benchmark Frameworks - 使用可以让您编写灵活而强大的基准测试驱动程序的基准测试框架。你可以使用:

    • HttpBenchmark - 这是一个开源 HttpBenchmark,您可以轻松修改并使用它来驱动 Web 服务/ESB 的工作负载。
    • Faban 框架,用于驱动各种 Web 服务基准测试(例如 SPECjEnterprise2010)。 Faban 有很好的文档记录,其中包含的教程也很有帮助/启发您设计自己的驱动程序。

【讨论】:

    猜你喜欢
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 2015-09-17
    • 2014-03-07
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    相关资源
    最近更新 更多