【问题标题】:Messages delayed to manually created azure queue延迟到手动创建的 Azure 队列的消息
【发布时间】:2017-09-11 21:23:44
【问题描述】:

在手动创建的 Azure 队列和以编程方式创建的队列上可以看到不同的行为。

我有两个 azure 队列。一种是通过 azure 门户 (ARM) 手动创建的,另一种是使用 azure SDK (2.9) NamespaceManager 类从 c# 程序创建的。

使用 QueueClient 类(从程序的相同或不同实例到创建队列的程序实例)向以编程方式创建的队列发送消息没有问题。但是,如果我使用相同的代码将消息发送到手动创建的队列,则消息不会通过,至少一开始不会;他们被严重延误。我还没有设法计算出确切的延迟,但至少需要几个小时,可能是几天。我也无法证明这些消息最终是否总是会通过,或者是否有一些消息会丢失。我看不出可以解释不同行为的队列属性之间的任何显着差异。

一旦消息出现在队列中,就不会观察到进一步的延迟。

手动创建的队列有延迟的原因吗?

编辑: 进一步调查显示,发送到全新区域中新服务总线中的新手动创建队列的消息没有延迟,但发送到该新总线中第二个手动创建队列的消息有延迟。至少 queue2 上的消息还没有通过(几分钟)。时间会证明他们最终是否会出现。

【问题讨论】:

  • 两个队列是否在同一个区域?你试过其他队列吗?如果您可以轻松地重现该行为,这听起来不正确。顺便说一句,2.9 是旧的。有 4.x
  • 所有队列都在同一个服务总线,同一个区域。全部在英国西部。也许我应该尝试不同的地区,看看是否有区别?
  • 我拥有的版本是 Visual Studio 2015 的版本,来自这里 azure.microsoft.com/en-gb/downloads
  • 好的,我刚刚在不同的地区(北欧)创建了一个新的服务总线和队列,消息立即通过。所以我猜要么是该地区,要么是我在同一辆公共汽车上有多个队列。

标签: c# azureservicebus


【解决方案1】:

一个命名空间应该允许多个实体。根据documentation,最多10,000。那个特定的命名空间有些不对劲。您可以尝试删除并重新创建它。或者,您可以跟进 Microsoft 支持以调查发生的情况。这需要时间,如果您需要命名空间名称,请阻止您,直到调查结束。

【讨论】:

  • 你发帖时我正在编辑问题。这似乎是天蓝色的一个问题。但是,我现在在两个具有相同行为的不同区域中有两个不同的命名空间。支持案例可能是要走的路。谢谢。
【解决方案2】:

这似乎是在 azure 门户中显示消息的问题。这些消息实际上可以从 SDK 访问,即使它们没有显示在 azure 门户中。

【讨论】: