当前位置: 首页 > 知识库问答 >
问题:

Azure服务总线主题订户接收消息不按顺序

柯书
2023-03-14

我正在使用azure service bus主题,我已经为它订阅启用了会话。

在my logic应用程序中,我使用来自主题的sql事务插入数据,我使用主题订阅(peek-lock)并在订阅服务器级别将并发设置为默认,如下所示

根据我的理解,我的逻辑应用程序(订阅者)应该读取所有的消息,并且必须在FIFO中处理
我的逻辑应用程序像

共有1个答案

嵇昱
2023-03-14

消息排序是一项微妙的业务。既可以有消息排序,也可以有并发处理,但不能两者兼而有之。当您必须对消息进行排序时,您就失去了并发处理的能力。这对于Azure服务总线会话和逻辑应用程序并发控制都是正确的。您可以处理多个会话,但每个会话仍将被限制在单个处理器中。这里有一个关于它的帖子。

 类似资料:
  • 参考https://github.com/Azure/azure-service-bus/tree/master/samples/dotnet/gettingstart/microsoft.Azure.servicebus/basicsendreceiveusingtopicsubscriptionclient,我了解Azure服务总线主题的一般工作方式,我的问题更多地是关于它实际上是如何工作的。

  • 我正在使用Azure服务总线主题机制。此外,我已经将消息发送到主题,并希望通过编程方式检查是否将消息发送到主题。 代码: 有没有办法获得响应或状态代码?

  • null 输出 谁能解释一下为什么会这样吗?这对我来说有点迷惑?

  • 我正在使用代码实现Azure服务总线主题,这些主题可以在以下位置找到:https://docs.microsoft.com/en-us/Azure/service-bus-messaging/service-bus-dotnet-how-to-use-topics-subscriptions 我尝试运行订阅者程序的两个实例,它包含以下方法: 但是,这不允许两个订户都接收消息,它接收的消息是两个订户

  • 我有一个超时选项,只想在超时前接收消息。 如果您能解释下面的代码是如何工作的,以及我如何修改下面的代码以在特定的时间框架内接收消息,并且一旦我的超时已经到达就停止接收,这将是很有帮助的。

  • 我用来接收消息的代码如下: 当我运行它时得到的是下一个信息: 如果我从线程中运行接收器,它会显示这条错误消息(当跳过该超时时,我应该删除该超时,因为在等待的守护进程中它不能跳过)。基本上都是同样的错误: 更新 我认为问题出在Azure服务总线和订阅和过滤器上。实际上,我有23个过滤器,我认为Azure服务总线只工作于1个订阅:(但我不确定这一点。