在当前的项目中,我们目前并排使用8个工作者角色机器,实际上与天蓝色实际上有点不同。
系统简介:
现在提出的问题是:当甚至增加机器数量以将性能提高到1200个呼叫/秒时,我们遇到了Cloud Queue的中断。在同一时刻,80%的机器进程不再处理消息。
这里有两个问题:
重新启动工作人员确实有帮助,但很快就会导致同样的问题。 我们是否达到了Cloud Queue可扩展性的自然结束,应该切换到Service Bus?
更新:
我无法完全理解这个问题,我在the natual borders of Cloud Queue中进行了描述。
总结:
答案 0 :(得分:1)
根据我的经验,我可以从Azure Cloud Queues获得比服务总线更好的原始性能,但Service Bus具有更好的企业功能(可靠,主题等)。 Azure Cloud Queue每个队列最多可处理2K /秒。
https://azure.microsoft.com/en-us/documentation/articles/storage-scalability-targets/
如果有一些自然分区键,您还可以尝试分区到多个队列。
确保您的进程没有某种线程死锁,这是真正的罪魁祸首。您可以通过在队列挂起并尝试从队列中提取消息时连接到队列来对此进行测试。如果可行的话,那就是你的过程,而不是队列。
另外看看这个设置其他一些显示器: https://azure.microsoft.com/en-us/documentation/articles/storage-monitor-storage-account/
答案 1 :(得分:0)
解决这个问题需要一些时间:
首先概述存储帐户的用法:
当识别出存储帐户处于高负荷状态时,我们会将其拆分。
系统现在运行2周,就像魅力一样。我们从中学到了一些东西:
存储中的异常处理非常糟糕。即使存储帐户被过度使用,我也会期待某种异常,而不仅仅是在没有任何周围信息的情况下返回零消息 阅读完整的故事:natural borders of cloud storage scalability
更新: 可扩展性有很多影响。您可能对Azure Service Bus: Massive count of listeners and senders感兴趣了解更多陷阱。