加载测试Azure EventHub

时间:2014-11-19 22:07:01

标签: c# http azure scalability azure-eventhub

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

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

//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的服务?

2 个答案:

答案 0 :(得分:0)

申请的性质是什么?这是一款移动应用吗?桌面?网?根据具体情况,您可以将应用程序本身加载到云主机上,然后直接或通过负载测试工具从该主机运行。

另一个选择是,由于您只专注于测试Event Hub本身,因此创建一个简单的网页,向事件中心发送HTTP帖子(这里有一个示例,通过javascript在{{{{ 3}}),然后通过您首选的负载测试工具从该网页中剔除。

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

答案 1 :(得分:0)

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