被Azure Service Bus限流

8

我在尝试从服务总线中检索消息时,在Windows Azure中遇到以下异常。

Microsoft.ServiceBus.Messaging.ServerBusyException: 由于实体被限制,请求被终止。请等待10秒钟后重试

在调用Receive方法后发生异常:

QueueClient queueClient = _messagingFactory.CreateQueueClient(queueName);
var brokeredMessage = queueClient.Receive(TimeSpan.Zero);

这个能配置吗,还是我对消息总线的要求太高了?

1
这里是SB消息配额,如果有帮助的话:http://msdn.microsoft.com/zh-cn/library/windowsazure/ee732538.aspx - astaykov
@astaykov 这是很好的信息,尽管我没有看到任何表明在X秒内有太多调用等情况的东西... 你有什么想法,哪一个可能会影响到我? - JoeGeeky
1
你是从一个客户端只调用一次Receive,还是从多个实例调用?如果是多个实例,并且你没有处理,那可能会达到客户端连接限制。另外,为什么不尝试使用Receive的无参数重载,而不是指定TimeSpan.Zero? - astaykov
@astaykov 好的,我会仔细看看,看看是否是问题所在。 - JoeGeeky
1
每个队列一个客户端 - 应该没问题。 至于监视连接数 - RDP 和在命令提示符中键入以下命令: "netstat -an" 这将为您提供主机中所有连接的状态列表(即空闲、已建立、正在侦听等)。 或使用来自 sysinternals 的 TcpView。没有更多的想法了。 - astaykov
显示剩余3条评论
1个回答

3
在您发布的信息不充分的情况下,看起来您使您的服务总线实例达到了极限。但是,考虑到这个问题最初来自将近7年前,需要注意的是,Azure服务总线可扩展性目标在此期间大大提高了。
您可以参考此Azure文档文章,了解Azure服务总线的配额和限制阈值的更多信息: https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quotas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接