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

azure service bus主题订阅上的锁定持续时间重要性

董翰墨
2023-03-14

我一直在研究服务总线队列和主题的lockdurations和renewlock机制。然而,对于主题订阅,锁定持续时间到底意味着什么还不清楚。

例如:

这之后会怎么样?其他订阅者已收到此消息。当前订户正在处理消息。

在这种情况下锁定持续时间的意义是什么?

共有1个答案

益清野
2023-03-14

把每一个订阅看作一个“收件箱”。每个订户都得到一个。一个消息会发送给所有的订户,但实际上,它是放入每个“收件箱”的消息的克隆,假设它有一个匹配的标准。

当给定的订户尝试使用peeklock模式处理来自“收件箱”的邮件时,该邮件被标记为不可见。如果在lockduration时间内处理邮件失败,邮件将重新出现在“收件箱”中,并将再次尝试处理。直到MaxDeliveryCount尝试用尽为止。在这种情况下,消息将被删除。

这对于竞争的消费者来说确实是需要的。即。当您的订阅者(查看给定订阅/“收件箱”的进程)被扩展以处理更多的消息时。

lockduration指示队列(订阅毕竟是一个队列)对竞争的使用者保持消息不可见,以确保当前处理节点能够在lockduration定义的时间框架内处理它。Renew lock机制确保当前正在处理的消息上的锁被扩展,以便在需要时允许比lockDuration处理时间更长的时间。重要的一点要记住,锁更新并不保证成功。

 类似资料:
  • 我正在尝试使用JMS在Azure Service Bus上创建非持久主题订阅。此功能最近已用于高级服务总线层。 我知道连接本身不是问题,因为我可以用这个连接工厂在主题中发布。我想知道是否有义务使用服务总线连接工厂或是否有解决方案。

  • 在我们的业务需求中,我们需要将更新传输到分布在全国各地的数千个客户端。问题是,许多这些客户端使用3G网络连接到我们,因此,发生了许多连接/断开连接...我们需要提供的更新是诸如“企业A不能再兑现”或“企业B能够再次兑现”之类的东西,我们正在考虑使用ActiveMQ持久主题来提供这些更新。我的理解是,一旦客户端连接到持久主题,即使他断开连接,每当他回来时,他都会在脱机时收到发送到该主题的消息。最大的

  • 是否有一种方法可以使用AWS CLI列出特定SQS队列订阅的所有AWS SNS主题? 我已经知道如何看到一个SNS主题上的订阅者列表,但这只有在我知道SNS主题的名称时才起作用。在这种情况下,我只知道SQS队列的名称。 我在网上搜索什么也找不到。

  • 我对Java非常陌生,在仔细阅读文档之后,我发现自己陷入了困境。 我有一个使用JavaFXMediaPlayer播放wav文件的小程序。我的播放器对象有一个currentTimeProperty,我希望在播放期间以分钟:秒为单位显示该属性的输出。 所以我在一个函数的末尾有这样一个函数,它接收我的wav文件并初始化播放器: 然后我有: 这很有效。在wav播放过程中,my以毫秒为单位随当前时间更新。问

  • 我想使用PublishSubject创建一个广播系统,一个后台任务将轮询一些endpoint,并定期使用该主题广播结果。我希望在第一个订阅者订阅主题时开始轮询,并在没有更多订阅者时停止轮询。如果有新订阅者订阅,则应继续轮询。

  • https://github.com/azure/azure-service-bus/tree/master/samples/dotnet/gettingstart/microsoft.azure.servicebus/topicsubscriptionwithruleoperationssample 现在我想添加一个筛选器/规则,这样只有通过筛选器中定义的特定条件的消息才应该给订阅。 例如,下面