问题标签 [azure-servicebus-subscriptions]

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 投票
0 回答
3201 浏览

asp.net-core - 使用 Moq 对 Microsoft.Azure.ServiceBus TopicClient 进行单元测试

我正在尝试对 Microsoft.Azure.ServiceBus(3.3.0) 主题和订阅功能进行单元测试。但我对测试 Microsoft.Azure.ServiceBus 类不感兴趣,但更多的是如何模拟向主题发送消息并检查该消息是否存在于带有订阅的特定主题上。

目前我有一个超级简单的 Publisher 类,它有一个方法 SendAsync。正如你在这里看到的:

工厂只有一种方法。使用工厂创建新的 TopicClient 时,我还返回了 ITopicClient 接口。不确定这是否有帮助。

单元测试:

0 投票
1 回答
35 浏览

azureservicebus - Azure 服务总线使用消息内容或消息头数据安排消息取消

我想queue/topic使用消息内容取消服务总线中的预定消息。

eg:预定的消息queue/topic会是这样的{UserName:'Scott', Test: 'This is test msg'}

我想使用UserName

注意:我没有保存取消令牌,我可以用它来取消预定的消息。

0 投票
1 回答
1618 浏览

azureservicebus - 关于 Azure 服务总线中的关联筛选器/SQL 筛选器

我们可以在相关过滤器中有否定条件,还是我们只能使用 SQL 过滤器在用户/系统属性上有 -ve 条件?

另外,是否可以删除和添加新规则,因为我们需要根据可能在任何时间点发生的触发器来更新过滤器(总是在 sql 过滤器中添加额外的条件)?

0 投票
1 回答
136 浏览

azureservicebus - Azure 服务总线 - 订阅 - 如何在 Web API 的输出中显示收到的消息

我正在使用 Azure 服务总线在两个 .Net 核心 Web API 服务之间传递消息。我成功地能够在 Azure 中设置主题/订阅,并且还能够使用 Web API 发布方法将消息发送到主题。当我尝试使用订阅阅读消息时,我被卡住了。我编写了一个 API 方法,它试图读取消息,它还应该在从主题读取消息后显示消息。当我使用 .Net core Console APP 时,我能够阅读消息,但是在使用 API 时,消息不会显示为 API 输出。

关于我缺少什么的任何线索?提前致谢。

代码如下:

公共异步任务获取订阅(){

公共无效RegisterOnMessageHandlerAndReceiveMessages(){

私有异步任务 ProcessMessagesAsync(消息消息,CancellationToken 令牌){
var messageBody = Encoding.UTF8.GetString(message.Body);

0 投票
1 回答
393 浏览

azure - 在 Azure 服务总线订阅中未触发 ProcessMessagesAsync 方法

我正在使用 Azure 服务总线在我的两个 .Net 核心 Web API 应用程序之间进行消息传递。通过使用 topicClient,我可以将消息发送到 ABS。但是,在使用订阅客户端接收消息时,我遇到了这个问题。

ProcessMessagesAsync - 在我给出“Console.Read();”之前方法不会触发 . 我不能给出这个,因为我使用的是 Web API。

否则,我可以触发这个 ProcessMessagesAsync 方法- 它完美地阅读了我的消息。

提前致谢。

0 投票
2 回答
190 浏览

azure - 如何控制/减少 Azure 服务总线中的吞吐量

我正在研究我们分布式系统中的 Azure 服务总线主题和订阅。我想控制在任何给定时间可以处理的消息数量。比如说,我们说生产中有 5 个节点,我知道我可以在创建订阅者时指定最大并发调用数。所以如果我给它一个值 1,我将被限制在环境中的活动节点的数量。

想知道是否有办法进一步限制它。例如,一次只处理来自订阅的一条消息,即使有活动的空闲侦听器在等待工作。

TIA

0 投票
1 回答
37 浏览

azure-servicebus-topics - 即使我的 python 代码正在等待服务总线订阅上的消息,ACI 的计费是否会继续发生?

我有订阅服务总线订阅的简单 python 代码。我已经将它容器化并作为 ACI 的一部分部署在 Azure 上。如果消息到达服务总线订阅,则执行代码,执行其逻辑,然后无限期地等待另一条消息出现。

代码是 Azure 在其 python sdk 文档中提供的内容

由于 ACI 是无服务器的并且按秒计费,因此即使它没有执行我的代码并等待消息出现在主题/订阅(基于事件)上,我只想确认我是否会被计费?

0 投票
1 回答
612 浏览

azureservicebus - Azure 服务总线异常 - MessageLockLostException:提供的锁无效。锁已过期,或消息已被删除

通过使用 Azure 服务总线主题和订阅 - 我能够在两个系统之间传递消息。但是有时,我会收到此锁过期异常。如何避免呢?

异常- 消息处理程序遇到异常 Microsoft.Azure.ServiceBus.MessageLockLostException:提供的锁无效。锁已过期,或者消息已从队列中删除。

下面是代码:

0 投票
1 回答
75 浏览

azureservicebus - 即使使用 AutoLockRenew 也会向订阅者发送重复消息

在使用 azure sdk for python 从 azure 服务总线主题订阅接收消息后,我正在使用AutoLockRenew类注册方法。

即使您使用AutoLockRenew.register()python 中的方法自动为您更新锁 -renewable.renew_lock()如果消息锁过期引发异常,它会静默失败!

仍在执行业务逻辑的父线程继续执行(直到它message.complete()实际上知道这一点时调用),但同时,相同的消息出现在队列中,第二个实例占用它进行处理!这意味着同一条消息现在正在由 2 个不同的接收者同时处理!

解决此问题的推荐方法是什么?

代码如下所示 -

0 投票
1 回答
134 浏览

.net - Azure Servicebus 循环竞争消费者

Azure ServiceBus 队列/订阅的竞争消费者是否意味着循环?

我正在循环回到我不久前提出的一个问题,并进行了更多测试。

在那里,我了解到一个正的PrefetchCount导致一个客户端对所有消息具有亲和力(除非负载增加到足以使该客户端忙于处理所有事情)。

实际上,看起来将 SubscriptionClient 设置为 MaxConcurrentCalls1 以外的任何值都会导致只有一个客户端在低负载下接收所有消息。

设置MaxConcurrentCalls = 1突然导致替代消息发送给竞争消费者。(请注意,我PrefetchCount在这里根本没有设置 a )

这是预期的吗?我们正在向外扩展,我需要一个客户端来同时处理多条消息,但是 90% 的时间,只有一个服务实例在处理所有事情......其他都是空闲的。

FWIW,这是Github上基于股票标准 MS文档的示例项目