Azure 服务总线消息生存时间设置

Azure Service Bus message time to live setting

我想问一下 Azure Service Bus 消息 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 queue/topic 性能而言,为 TTL 设置的 5 分钟、1 小时和 20 小时有何区别?

提前致谢

生存时间属性用于设置服务总线中消息的过期时间window。

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

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

在性能方面,由于TTL值较高,Queue中的性能不会差很多。