You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Pubsub消息长时间未确认且延迟接收问题排查求助

Google Pub/Sub 订阅延迟问题排查求助

我的订阅配置

  • 投递类型:Pull
  • 确认期限:15秒
  • 重试策略:立即重试
    (界面上还有其他相关参数)

消息处理代码

Func<Subscription, PubsubMessage, CancellationToken, Task<SubscriberClient.Reply>> gcpHandler = (subscription, msg, ctInner) =>
{
    _logger.LogInformation("Got some message!");
    
    // 为了让消息处理逻辑尽快完成、尽早消费下一条消息,这里不await异步任务
    var backgroundTask = SomeAsyncBackgroundJob(msg); 

    _logger.LogInformation("Message was successfully processed!");
    return Task.FromResult(SubscriberClient.Reply.Ack);
};

var subscriberTask = subscriber.StartAsync((msg, _) => gcpHandler(subscription, msg, ct));

逻辑说明

gcpHandler内部执行速度极快,仅需1-5毫秒。我原本认为把业务逻辑放到后台异步任务,让消费者立即确认消息,就能尽快处理后续消息,这个设计是合理的。

异常问题

整体运行状态正常,但偶尔会出现异常:gcpHandler数分钟内无法接收任何消息。比如发送6条消息后,完全看不到“Got some message!”的日志输出,此时监控图表显示这些消息处于未确认状态——但消费者根本还没接收到它们!约4分钟后,消费者才最终接收并正常处理这些消息。该问题随机出现,且没有产生任何错误或异常信息。

我已经设置了“立即重试”策略,理论上消息应该被立即处理,但实际却出现了约4分钟的延迟。有没有人遇到过类似问题?应该从哪些方面进行排查?

附问题发生时的监控图表:
消息状态监控图表
另一个监控图表

内容的提问来源于stack exchange,提问作者Alex K.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:37:31