azure - 未从 azure 服务总线订阅获取所有代理消息

标签 azure azureservicebus servicebus azure-servicebus-queues brokeredmessage

我正在使用 azure 服务总线订阅和主题来发送订单和获取订单。我们有一个 Windows 应用程序,它使用 Web api 从 azure 服务总线订阅中提取订单。

假设用户登录并收到 5 个订单。如果用户从 Windows 应用程序注销,那么我们会解锁来自 azure 服务总线的消息。如果用户在 5 分钟或更短时间内再次登录,那么我们将无法从 azure 服务总线获取所有订单。有时会出现 3 或 4 个。

谁能帮我解决这个问题,为什么我没有再次收到所有 5 个订单。我正在使用 subscriptionclinet 的 ReceiveBatch 方法来拉取消息。

最佳答案

我怀疑您在这里遇到了交货计数问题。假设我正确理解了您的意思,Windows 应用程序会以 PeekLock 模式提取消息。处理消息后,您就完成了它。否则,退出应用程序后,您将放弃这些消息。如果您未完成消息处理,并且用户退出,则消息将被放弃,同时 DeliveryCount 会增加。一旦 DeliveryCount 超过实体上设置的最大值,消息将成为死信并且将不再传递。

  1. 检查实体上的 MaxDeliveryCount
  2. 检查您实体的 DLQ 以验证这是否是该行为
  3. 如果他们被 DLQed,我建议查看 centralising your DLQs为了更轻松地处理错误

关于azure - 未从 azure 服务总线订阅获取所有代理消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38768904/

相关文章:

c# - Azure 上的 Asp .NET Core 遇到 502 Web 服务器在充当网关或代理服务器时收到无效响应

azure - 将 Azure VM 移动到 VNET

java - 将 Azure 服务总线与 Spring Boot 集成

soa - JBI死了吗?它仍然是 ESB 选择中的有效标准吗?

用于单个 VM 上多个 SSL 的 Azure VIP

c# - 以编程方式访问存储帐户

c# - Microsoft ServiceBus - 参数实体名称为 null 或为空

azure - Azure .net SDK 中的异常 "cannot open log"无效操作异常是什么?

java - RabbitMQ Java 客户端到 Windows 服务总线

azure - Microsoft BizTalk Server 与 Azure AppFabric 服务总线...?