我们有一个在MS SQL上运行的电子商务应用程序。
我们偶尔会有闪购,一旦我们开始将所有订单插入数据库,我们网站的性能就会下降。我们可以在一分钟内插入大约1,500个订单,但在此之后该网站会挂起几分钟。只有在插入开始发生后,该站点才会挂起。
我一直在研究使用与SignalR混合的Azure Service Bus队列来管理订单流程,因为这是我一段时间以前建议的。我看到它发生的方式是(广泛的概述):
我是SignalR的新手并且排队一般,所以我的问题是:
答案 0 :(得分:1)
您提到的概述很有意义。看起来你应该能够在没有SignalR的情况下完成它,因为ServiceBus会在成功将消息插入队列后通知你。
并不是队列可以为1个请求提供更好的性能。放置到队列中的消息将被存储,直到您准备好处理它们为止。通过这样做,你不会遭受巅峰"问题,您将能够以您知道系统能够维持的速度从队列接收(可能500个订单/分钟或任何适合您的号码)。
因此,他们会在不关闭系统的情况下为每个请求提供更稳定的延迟。