Performance Azure队列延迟消息
我对azure队列消息的生产部署有一些奇怪的行为: 队列中的一些消息会出现很大的延迟—几分钟,有时是10分钟。 在我们将消息放入队列时询问设置delayTimeout之前,我们并没有为该消息设置delayTimeout,所以消息应该在放入队列后立即出现。 在那一刻,我们没有太大的负担。所以我的实例并没有工作负载,能够快速处理消息,但它们就是不出现 我们的服务每月处理数百万条消息,我们能够识别出10-50条消息的处理延迟非常大,因为我们在客户面前无法通过SLA 有人知道什么是原因吗 如何克服Performance Azure队列延迟消息,performance,azure,azure-storage,azure-queues,Performance,Azure,Azure Storage,Azure Queues,我对azure队列消息的生产部署有一些奇怪的行为: 队列中的一些消息会出现很大的延迟—几分钟,有时是10分钟。 在我们将消息放入队列时询问设置delayTimeout之前,我们并没有为该消息设置delayTimeout,所以消息应该在放入队列后立即出现。 在那一刻,我们没有太大的负担。所以我的实例并没有工作负载,能够快速处理消息,但它们就是不出现 我们的服务每月处理数百万条消息,我们能够识别出10-50条消息的处理延迟非常大,因为我们在客户面前无法通过SLA 有人知道什么是原因吗 如何克服 有没
有没有人遇到过类似的问题?一些常见的故障排除方法:
JasonAzure服务总线在BrokeredMessage类中有一个名为ScheduledQueueTimeUTC的属性,它允许您设置消息添加到队列的时间(有效地创建延迟) 您确定您的代码中没有设置此属性,这可能是延迟的原因吗
您可以在此url上找到更多信息:如果您使用WebJobs来处理队列中的消息,这可能是由于WebJobs配置造成的 来自pranav rastogi的一份报告: 从0.4.0-beta版开始,(WebJobs)SDK实现了一种随机指数退避算法。因此,如果队列中没有消息,SDK将退出并减少轮询频率 以下设置允许您配置此行为 MaxPollingInterval用于队列保持为空时,检查要发送的消息之前等待的最长时间。默认值为10分钟
static void Main()
{
JobHostConfiguration config = new JobHostConfiguration();
config.Queues.MaxPollingInterval = TimeSpan.FromMinutes(1);
JobHost host = new JobHost(config);
host.RunAndBlock();
}
您使用什么方法/代码读取和处理队列?1。我确信消息已存储到队列中,当消息成功存储到队列存储器2时,我们将记录写入数据库。不,日志记录有消息处理的实际时间,即使我们使用Mssql存储每个消息的日志行—我们使用消息生成时的时间。所以不可能有任何问题。而且MSSQL没有瓶颈3。四号。五号。上周启用,等待结果,早些时候错过了这种可能性,我们的解决方案是在两年多前开发的,当时我们还没有这样的功能。