Azure 服务总线消息生存时间设置 [关闭]
Posted
技术标签:
【中文标题】Azure 服务总线消息生存时间设置 [关闭]【英文标题】:Azure Service Bus message time to live setting [closed] 【发布时间】: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 服务总线是一种消息传递服务,而不是存储。 【参考方案1】:Time to live 属性用于设置 Service Bus 中消息的过期时间窗口。
根据为 TTL 配置的时间,消息要么移至死信,要么从队列中丢失。此属性的用法可能因用例而异。
例如,如果我确定我的系统不会宕机并且会在消息入队后立即挑选消息,我会将 TTL 配置为非常短的时间窗口,例如 1 分钟(有助于验证系统通过监视队列的死信长度工作正常)。如果我的系统不可靠或者系统每天只运行一次来处理消息,那么我应该为这个属性设置一个更高的值,以便消息在队列中可用的时间更长,让系统来处理.
在性能方面,由于TTL值较高,Queue中的性能不会有太大的不足。
【讨论】:
感谢您的回复。如果它不影响性能并且我们不会有太多不足,我们可以使用比现在更高的值。以上是关于Azure 服务总线消息生存时间设置 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
限制服务总线消息接收的 Azure Functions 速率