【问题标题】:Azure Service Bus message time to live setting [closed]Azure 服务总线消息生存时间设置 [关闭]
【发布时间】:2019-01-23 01:39:24
【问题描述】:

我想问一下 Azure 服务总线 消息 TTL(生存时间) 选项 - https://docs.microsoft.com/en-us/azure/service-bus-messaging/message-expiration 的最佳做法是什么。

我们使用 Azure 服务总线将数据从一个系统导入到另一个系统,记录量为数百万。

简单地说,这个选项告诉 ASB 消息在移动到死信队列之前可以在队列或主题中停留多长时间(如果已配置) - https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dead-letter-queues#moving-messages-to-the-dlq

即便如此,我还是找不到 TTL 值如何影响 ASB 吞吐量和性能。 就 ASB 队列/主题性能而言,为 TTL 设置的 5 分钟、1 小时和 20 小时有什么区别?

提前谢谢你

【问题讨论】:

  • “就 ASB 队列/主题性能而言,为 TTL 设置的 5 分钟、1 小时和 20 小时有什么区别?” 如果不了解使用服务总线的应用程序。
  • 你是对的。我将添加一些关于我们的需求以及我们使用 ASB 的说明
  • 不应滥用 TTL。使用合理的最大值。请记住,Azure 服务总线是一种消息传递服务,而不是存储。

标签: azure message-queue azureservicebus azure-servicebus-queues azure-servicebus-topics


【解决方案1】:

Time to live 属性用于设置 Service Bus 中消息的过期时间窗口。

根据为 TTL 配置的时间,消息要么移至死信,要么从队列中丢失。此属性的用法可能因用例而异。

例如,如果我确定我的系统不会宕机并且会在消息入队后立即挑选消息,我会将 TTL 配置为非常短的时间窗口,例如 1 分钟(有助于验证系统通过监视队列的死信长度工作正常)。如果我的系统不可靠或者系统每天只运行一次来​​处理消息,那么我应该为这个属性设置一个更高的值,以便消息在队列中可用的时间更长,让系统来处理.

在性能方面,由于TTL值较高,Queue中的性能不会有太大的不足。

【讨论】:

  • 感谢您的回复。如果它不影响性能并且我们不会有太多不足,我们可以使用比现在更高的值。
猜你喜欢
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多