问题标签 [azure-servicebus-queues]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1152 浏览

azureservicebus - Azure SB 队列将消息发送到禁用的死信队列

为什么我的 Azure 服务总线队列在未启用时会向死信子队列发送消息?

从一开始我就确保过期的消息不会被移动到死信队列(或者我是这么认为的)。

在 Visual Studio Server Explorer 中,我在队列下看到了这个:

  • EnableDeadLetteringOnMessageExpiration: False

但我也看到了这个:

  • 死信消息数:16

我不能像往常一样把它们拉出来,所以我创建了一个临时服务来处理(摆脱)这些,这就是我能够从brokeredMessage.Properties

  • DeadLetterReason: MaxDeliveryCountExceeded
  • DeadLetterErrorDescription:10 次传递尝试后无法使用消息。

我希望消息在未完成时仅留在正常队列中。到目前为止,我已将 MaxDeliveryCount 更改为 1000,但这不是一个真正的解决方案。

我在看什么?

更新 阅读我自己的文字后,我意识到 EnableDeadLetteringOnMessageExpiration 与传递计数无关。我可以选择让我的消息永远留在正常队列中吗?还是我必须将 MaxDeliveryCount 设置为“足够高”?

0 投票
0 回答
212 浏览

azure - 如何仅对等待消息使用 Azure 服务总线队列重复检测?

我们将利用 Azure 服务总线队列来调度触发昂贵的数据库计算的消息。这些消息可以相当快地生成,并且在某些情况下可以紧密地生成相同的消息。在这种情况下,我们只想处理一次数据。

所以我们打算利用重复检测,但有些细微差别我无法从文档或以前的问题中收集到。参数是:

  1. 如果一条消息正在等待处理,并且即将创建一条相同的消息,请不要创建它。
  2. 如果之前处理过一条消息,并且即将创建一条相同的消息,请务必创建它。
  3. 如果当前正在处理一条消息,并且即将创建一条相同的消息,请务必创建它。

我找不到的是一种禁用“历史”重复检测但启用“等待”重复检测的方法 - 检测队列中等待的消息,而不是那些已经处理的消息。重复检测历史机制是否仅适用于已完成的消息,或者时间范围是否也与等待消息相关?

对于#3,我正在考虑通过添加 5 分钟的延迟来处理任何消息来解决这个问题,这样如果在处理消息时创建了一个消息,则有足够的时间来完成处理一个消息。

0 投票
1 回答
217 浏览

azure - Service Bus On-Prem - 放弃延迟消息

最近我一直在使用Azure Pack & Service Bus for Windows Server 1.1,我正在使用队列进行消息延迟。

我想知道是否可以放弃延迟消息以使其再次对其他人可见?目前我可以通过使用来检索我的延迟消息,Receive(_seqNr)但是当我调用该Abandon()方法时它没有效果。

有没有办法实现这种行为?

请注意,我不能仅使用 PeekLock,因为在需要时在应用程序流程中稍后会发生放弃。

0 投票
1 回答
103 浏览

servicebus - Windows Server 的服务总线 - 具有 TTL 行为的延迟消息

当使用延迟消息时,生存时间被忽略,是否有可能出现这种行为并将消息发送到死信队列

如果是这样,我该如何实现?

0 投票
2 回答
108 浏览

azure - Azure serviceBusService 未处理的异常

我正在尝试从我的 Azure 移动服务中的 API 函数发送 serviceBusQueue 消息,即使它成功创建了 queueService 并且队列存在,但我得到了一个令人讨厌的异常。任何线索我如何解决这个问题?

我附上了发送代码和堆栈跟踪。

异常堆栈:

发生未处理的异常。TypeError:无法在 ServiceClient._performRequest.self._buildRequestOptions.operation (D:\home\site\wwwroot\node_modules\azure\lib\services\core\serviceclient.js:210:34) 在 ServiceClient 设置属性“body”为 null ._performRequest (D:\home\site\wwwroot\node_modules\azure\lib\services\core\serviceclient.js:264:7) 在 ServiceBusService.ServiceClient._initDefaultFilter.filter (D:\home\site\wwwroot\node_modules\ azure\lib\services\core\serviceclient.js:534:7) 在 ServiceClient._performRequest (D:\home\site\wwwroot\node_modules\azure\lib\services\core\serviceclient.js:261:10) 在 ServiceBusServiceClient ._buildRequestOptions (D:\home\site\wwwroot\node_modules\azure\lib\services\core\servicebusserviceclient.js:107:5) 在 Wrap.signRequest (D:

0 投票
2 回答
512 浏览

azure - 如何从 Windows Phone 8 应用程序访问 Windows Azure ServiceBus 队列?

WindowsAzure.Messaging.Managed的​​文档将包的用途说明为:

将此与 Windows Azure 服务总线和通知中心客户端注册(用于 Windows 应用商店和 Windows Phone 8 应用程序)一起使用。它将 Microsoft.WindowsAzure.Messaging.Managed.dll 添加到您的项目中。

不幸的是,对于如何从 Windows Phone 8 应用程序访问 Windows Azure ServiceBus 队列机制,没有一个明确的描述。

有没有办法从 Windows Phone 8 应用程序访问 ServiceBus 队列?如果有,哪个包应该允许这样做?

0 投票
1 回答
536 浏览

namespaces - Azure SB 配对命名空间 - 虹吸管如何工作?

我正在阅读 Azure 服务总线上的配对命名空间,并计划在系统中实现它作为我的队列的一种故障转移(也计划分区)。

据我了解,虹吸管只是我设置的常用接收器Microsoft.ServiceBus.Messaging.SendAvailabilityPairedNamespaceOptions.EnableSyphon。对于不同的队列,我有不同的接收器。我可以将它们都设置为接收器吗?他们只会收到自己的消息吗?

我对此感到困惑:“虹吸管执行持续 15 分钟的长轮询接收。 ” - http://msdn.microsoft.com/en-us/library/dn391562.aspx

哪个虹吸管会这样做?他们全部?真的需要15分钟吗?这对我的系统来说是相当长的时间。其中一位接收者需要至少 10 分钟内的消息(5 分钟,我会睡得更好)。

0 投票
2 回答
1523 浏览

c# - Azure 服务总线 AutoDeleteOnIdle

我想做一个分区队列,我一直在阅读这个网站:http: //msdn.microsoft.com/en-us/library/azure/dn520246.aspx

在其当前实现中,Service Bus 对分区队列和主题施加了以下限制:

  • 队列或主题的分区不会在空闲时启用自动删除。如果发生以下任何情况,服务总线将返回 InvalidOperationException:
    • 您尝试创建 Microsoft.ServiceBus.Messaging.QueueDescription.AutoDeleteOnIdle 和 Microsoft.ServiceBus.Messaging.QueueDescription.EnablePartitioning 属性都设置为 true 的队列。

但是AutoDeleteOnIdle是一个TimeSpan。他们是指另一个财产吗?还是我将 TimeSpan 设置为 0 或 -1 刻度?根据http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.queuedescription.autodeleteonidle.aspx,最短持续时间为 5 分钟。无论如何,我不是在寻找任何自动删除功能。我应该忽略它吗?

0 投票
4 回答
5188 浏览

azure - Azure 服务总线队列消息卡住

我最近创建了一些分区队列,我一直在这些队列中发送和接收。他们过去一直以非分区方式运行,没有我当前的任何问题。

问题是,队列中有固定数量的消息无法接收。当我不向队列发送任何其他消息时,我总是一无所获,但是当我向队列发送消息时,我会毫无问题地收到新消息。卡在队列中的消息是活动消息,而不是死信。

我怀疑它们被困在特定的分区中,但我不知道如何接收它们。

由于我无法收到这些消息,有没有办法重置 ServiceBus 队列?

有任何想法吗?

更新:

这个数字不是恒定的,而是非常缓慢地增加。在我们的测试环境中,我们每小时收到的消息略多于 2000 条,而队列在重置为 0(零)后在过去 12 小时内分别收到了大约 20 条消息。这些消息就在那里,但无法接收。至少不是以通常的方式。

问题仅在分区后的两个命名空间中出现。问题不在于我们不使用分区队列的实时环境。

0 投票
1 回答
1256 浏览

azure - 缺少 Azure 服务总线 ACS 颁发者和密钥

我今天创建了一些服务总线,除了具有特定类型(“消息传递”,我的旧总线是“混合”)之外,它们没有给我任何我需要的 ACS 信息。我的旧服务总线确实有这些信息。

我从中了解到:Azure:如何为服务总线命名空间创建访问控制服务命名空间? 是我可能需要使用我不知道的 Powershell Cmdlet。

有没有办法将 ACS 添加到服务总线?如何?