Azure 服务总线订阅未从该主题获取任何消息

标签 azure azureservicebus azure-servicebus-topics

背景

我在 Azure 服务总线中有一个主题 (T1),它从客户端(Web 应用程序)获取数百万条消息。有 3 个订阅(S1、S2、S3),没有任何过滤器,由 3 个不同的后台进程(辅助角色)创建。

问题

当工作角色运行时,只有第一个订阅(S1)似乎收到任何消息,然后休息(S2 和 S3)也没有收到任何消息不会收到任何东西或得到其中的一小部分。所有订阅者都以相同的方式创建,具有相同的精确设置,并且没有过滤器。

Service Bus Explorer 显示S1 (~100K) 的正确消息计数,但对于 S2 和 S3,事件消息计数非常非常低(小于 10,通常为 0)。在我看来,不知何故,这些消息甚至在客户端没有收到的情况下就被删除了。

调查问题所在以及订阅者之间的消息计数不匹配的最佳方法是什么。对可能出现的问题有什么建议吗?

最佳答案

检查有问题的订阅。订阅支持自己DefaultMessageTimeToLive 。默认情况下,它设置为最大值。查看用于创建订阅的代码,也许它使用 QueueDescription 来自定义 DefaultMessageTimeToLive 和其他值。

此外,启用 EnableDeadLetteringOnMessageExpiration查看消息是否过期。

检查MaxDeliveryCount 。如果它太低并且消息未成功处理,则传递计数将超过最大值,并且消息将消失或死信。

除此之外,如果过滤正在启动,您可以通过启用 EnableDeadLetteringOnFilterEvaluationExceptions 来发现这一点。

如果没有帮助,请在 GutHub 或 BitBucket 中发布复制代码的链接,以便人们可以看到所做的事情。

关于Azure 服务总线订阅未从该主题获取任何消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38625338/

相关文章:

python - Azure Batch 服务与用于 Python 作业的 Azure Databricks

azure - 最大是多少? Azure 托管实例数据库允许的数据库大小?

Azure 应用程序代理 COR

javascript - 如何在Azure Function App中进行XHR

javascript - 获取 Azure 服务总线的详细信息

c# - 将类型绑定(bind)到 Webjob SDK 触发器

.net-core - Microsoft Orleans 中的 ServiceBus,OrleansPrepareFailedException 异常

azure - 如何强制对 Azure 服务总线队列或主题中的消息进行排序?

Azure 服务总线有序处理消息

azure - 保护非 Http 触发的 Azure Functions(例如服务总线触发器)