4

我开发了一个使用 Azure EventHub的应用程序- 它声称是用于发布和处理大量事件的非常可扩展的解决方案 - 现在我想对最终解决方案进行负载测试,以查看整个系统是否符合我的要求或我需要向 EventHub 添加更多吞吐量单元以处理预期的入口。

我的客户正在使用 EventHub 的 HTTP 端点来发布事件,这实际上意味着当客户想要发布事件时,它会将 HTTPS POST 请求发送到一个特殊的 URL,例如:

//mynamespace.servicebus.windows.net/myeventhub/publishers/mypublisher

我可以轻松地从本地机器加载测试此服务(例如使用Apache JMeter),但不幸的是,我的本地机器资源有限,因此我无法生成大负载来测试我的服务。

大负载是什么意思?

我需要针对每秒给定数量的请求测试系统——这个给定的数量应该在 20,000 到 100,000 之间——所以在最坏的情况下,我必须以100,000 个请求/秒来测试它。

有多个云负载测试工具可以产生如此大的负载并且它们很好 - 但是,当我必须验证我要测试的系统是我的财产时,云中的每个负载测试工具都需要一些验证步骤。(因此负载测试器不会对 WhiteHouse 网站进行 DDoS。)

为此,我通常必须在运行测试之前将验证令牌上传到负载测试工具检查的 URL。不幸的是,在这种情况下,我无法控制 EventHub 的端点,因此我无法将令牌上传到:

//mynamespace.servicebus.windows.net/verificationToken.txt

云中是否有任何负载测试解决方案可以与 Azure EventHubs 一起使用?

如果没有,我如何加载测试基于 EventHub 的服务?

4

2 回答 2

0

应用程序的性质是什么?这是一个移动应用程序吗?桌面?网络?根据场景,您可以将应用程序本身加载到云主机上,然后直接或通过负载测试工具从那里运行它。

另一种选择是,由于您只专注于测试事件中心本身,因此创建一个简单的网页,将 HTTP 发布到事件中心(有一个通过 javascript 执行此操作的示例:https ://brentdacodemonkey.wordpress.com/ 2014/11/18/azures-new-event-hub/),然后通过您首选的负载测试工具从该网页中删除。

不过,在开始测试之前,请确保在需要时进行批处理。批量发送可以大大提高摄取速度。您还需要确保已配置适合您计划生成的负载的比例单位数量。默认情况下,您被限制为 1mb/s 入站和 2mb/s 出站。如果您觉得 100,000 个事件/秒将超过 1mb,那么您需要确保已增加事件中心吞吐量单位。最后,尽可能异步发送事件。当负载测试遇到发送应用程序的瓶颈并且同步发送事件时,这种情况并不少见,这种瓶颈很容易被解释为事件中心本身的吞吐量问题。

于 2014-11-22T14:40:11.607 回答
0

对端点使用 Azur VM 云测试怎么样?看看这个:https ://www.visualstudio.com/en-us/get-started/test/load-test-your-app-vs

于 2016-03-03T16:13:28.043 回答