我想问一下 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小时之间有什么区别?
提前谢谢
答案 0 :(得分:1)
生存时间属性用于设置服务总线中消息的到期时间窗口。
根据为TTL配置的时间,消息要么移到死信中,要么从队列中丢失。此属性的用法可能会因使用案例而异。
例如,如果我确定我的系统不会出现故障并在进入队列后立即选择消息,则可以将TTL配置为非常短的时间窗口,例如1分钟(有助于验证系统通过监视Queue的死信长度可以正常工作)。如果我的系统不可靠,或者系统每天仅运行一次以处理消息,那么我应该为此属性设置一个较高的值,以便消息在队列中的可用时间更长,从而使系统可以处理
谈到性能,由于TTL值较高,因此队列中不会有很多性能不足。