Azure Service Bus消息生效时间设置

时间:2018-08-16 06:54:21

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

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

我们使用Azure Service Bus将数据从一个系统导入到另一个系统,记录量达到数百万。

简而言之,此选项告诉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小时之间有什么区别?

提前谢谢

1 个答案:

答案 0 :(得分:1)

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

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

例如,如果我确定我的系统不会出现故障并在进入队列后立即选择消息,则可以将TTL配置为非常短的时间窗口,例如1分钟(有助于验证系统通过监视Queue的死信长度可以正常工作)。如果我的系统不可靠,或者系统每天仅运行一次以处理消息,那么我应该为此属性设置一个较高的值,以便消息在队列中的可用时间更长,从而使系统可以处理

谈到性能,由于TTL值较高,因此队列中不会有很多性能不足。