【发布时间】: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