问题标签 [azure-servicebus-topics]

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 回答
1329 浏览

c# - 当您尝试取消已排入队列的计划 Azure 服务总线消息时会发生什么情况?

我试图想出为 Azure 服务总线队列或主题安排消息的最佳方法,同时保持选项打开以立即发送消息而不是预定消息。如果我尝试在第一条消息的预定时间或之后发送替换消息,我想确保我可以保护自己免受创建重复消息的影响。

如果我在消息已入队后尝试使用 CancelScheduledMessageAsync(对于 QueueClient 和 TopicClient 类)取消计划消息,会发生什么情况?它会抛出异常吗?

0 投票
1 回答
451 浏览

c# - 我可以使用重复检测来取消计划的 Azure 服务总线消息吗?

我试图想出为 Azure 服务总线队列或主题安排消息的最佳方法,同时保持选项打开以立即发送消息而不是预定消息。如果我尝试在第一条消息的预定时间或之后发送替换消息,我想确保我可以保护自己免受创建重复消息的影响。

如果您打开重复检测并且两条消息具有相同的 MessageId,那么在第一条消息的预定入队时间之前发送第二条消息是否会有效地取消预定消息?此外,如果计划的消息首先成功排队,那么假设第二条消息将被忽略是否安全?

0 投票
1 回答
302 浏览

azure - 无法向 Azure 主题订阅添加规则

这是一个非常基本的场景,我不知道为什么它不起作用。我无法向主题添加规则。

AddRuleAsync 调用总是抛出 - “服务无法处理请求;请重试操作。”。服务总线是使用 MS 入门部分创建的。我正在使用 .NET Core 的 0.0.7-preview 包。我可以使用我创建的主题发送和接收消息,但由于某种原因我无法添加规则。

0 投票
1 回答
381 浏览

azureservicebus - 使用 Azure 服务总线的 Java (Qpid JMS) 中的持久订阅

我正在使用 Java 和 Qpid JMS 0.23 对 pub/sub 进行测试。

我在 SB 中创建了一个名为“test.topic”的主题。

我可以从测试应用程序向主题发布消息,但是当尝试订阅(动态创建订阅)时,它会失败并出现异常:

javax.jms.InvalidDestinationException:找不到消息传递实体“mynamespace:topic:test.topic~15|DurableSubscriber2”。TrackingId:12ecc2a3-f8f3-42a3-8bd5-ad5d9823c367_B20, SystemTracker:mynamespace:topic:test.topic~15|DurableSubscriber2, Timestamp:8/8/2017 12:13:31 PM TrackingId:7e0d46404c8c45f39bfftff21b77c7a140_G /8/2017 12:13:31 PM [条件 = amqp:not-found]

一些代码:

  • 是否可以从应用程序在 SB 中创建主题订阅?

如果我在主题上创建一个名为“sub1”的静态订阅,它会接收已发布的消息。检索时,我需要将主题定义为:

IE

  • 动态订阅时是否需要一些类似的命名?
0 投票
1 回答
1832 浏览

multithreading - Azure Service TopicClient 线程安全且可重用吗?

我们正在使用 Azure SDK 将消息发布到服务总线。在 Web API 调用中,我们为每个传入请求重复执行这些任务

可以将 topicClient 转换为 Singleton 并跨多个线程重用吗?

0 投票
1 回答
363 浏览

azure - 使用 REST API 更新 Azure 服务总线订阅时出现“授权失败 (401)”

我正在尝试使用 REST API 更新 Azure 服务总线订阅。

当我"ForwardTo"在请求 XML 中包含属性时,我收到Authorization Failure (401)来自服务总线的错误。

这是我的请求 XML 的样子:

但是,如果我从请求 XML 中删除“ForwardTo”节点,一切正常。

我还查看了 Service Bus REST API 文档,不幸的是,该文档非常不完整。它没有提供任何关于如何制作 XML 请求有效负载的示例。

我什至查看了其他 SDK(例如 Python),也有很多属性被方便地忽略了:(。

有趣的是,我通过服务总线资源管理器(使用 .Net SDK)执行了相同的操作,并且操作正常。我使用 HTTP 协议连接到我的 Service Bus 帐户并通过 Fiddler 跟踪请求/响应,我的请求和 Service Bus Explorer 发送的请求或多或少相同(它发送了一些我没有包含在我的请求中的额外参数)。

此外,服务总线没有向我提供有关该错误的更多详细信息。我从那里得到的唯一东西是:

对于可能导致此错误的原因,我在这里完全不知所措。

我确实知道服务总线 REST API 对 XML 元素应该出现在请求正文中的顺序非常挑剔,据我所知,顺序是正确的(但我可能又错了,因为我没有任何参考文件来比较我的请求正文)。

当我更改“ForwardTo”节点的顺序时,我没有收到任何错误,但随后此属性被忽略(因为请求正文中 XML 元素的顺序)。

对此的任何见解将不胜感激。

0 投票
0 回答
182 浏览

azure - Azure 服务总线主题中“EnableSubscriptionPartitioning”属性的用途是什么?

在 Azure 服务总线主题中进行分区时,有两个属性:EnablePartitioningEnableSubscriptionPartitioning.

我很清楚EnablePartitioning财产的作用。根据我对这个属性的理解,本质上当这个属性设置为 true 时,有问题的主题将在多个消息代理之间进行分区。

我无法找到有关EnableSubscriptionPartitioning财产的任何具体信息。我看到的documentation只是将此属性描述为:

指示分区是启用还是禁用的值。

此外,当我创建一个将此属性设置为 true 的主题(并启用分区属性设置为 false)时,会为我创建一个118784 MB大小为(MaxSizeInMegabytes属性)的主题。这是我获取主题属性时得到的响应 XML。

我遇到的问题是当我尝试更新主题时,我从服务中收到一条错误消息,抱怨大小无效。因为主题没有分区,所以大小应该是以下之一:1GB、2GB、3GB、4GB 或 5GB。

对此的任何见解将不胜感激。

0 投票
1 回答
266 浏览

azure - Azure ServiceBus SqlFilter 表达式语法错误

向 SubscriptionClient 添加规则时,如果不删除所有空格,则会出现语法错误。我读过的众多例子中没有一个必须这样做。任何想法为什么?

Microsoft.ServiceBus.Messaging.FilterException:'解析 SQL 表达式时出错。[标记行=1,列=4,错误标记=,其他详细信息=无法识别的字符。' ' ] TrackingId:4087836f-321c-45d7-b217-cb7fae75ee67_G11_B27...'

0 投票
3 回答
10148 浏览

azure - 如何在本地调试 ServiceBus 触发的 Azure Function?

我的函数将从现有的 ServiceBus 主题触发。我已经使用 VS2017 (15.3) 预览版中的新工具创建了该函数,作为编译函数。

如何在本地测试此功能?

0 投票
1 回答
606 浏览

python-3.x - 接收有关 Azure 服务总线上的主题订阅的信息

我在Azure Service Bus开发中使用过滤器订阅了一个主题Python 3.x,当我等待发送到该主题的信息(通过过滤器的信息)时,我无法接收它。

我需要创建一个始终在监听的守护进程,当我收到该信息时,我会将其发送到应用程序的内部服务,因此接收器在循环内的线程中运行While True

我用来接收消息的代码如下:

我运行它时得到的是下一个信息:

如果我从线程中运行接收器,这就是它显示的错误消息(同样,当超时被跳过时,我应该删除哪个超时,因为在等待它的守护进程中它不能跳过)。基本上,这是相同的错误:

我没有收到我正在等待的信息,也跳过了服务总线超时(我没有编程)。

有谁能够帮我?微软的文档并没有太大帮助,真的。

提前致谢

更新

我认为问题出在 Azure 服务总线以及订阅和筛选器上。实际上,我有 23 个过滤器,我认为 Azure 服务总线仅适用于 1 个订阅 :( 但我不确定这一点。