清除pubsub订阅的最佳方式是什么?

时间:2017-09-07 16:11:56

标签: google-cloud-pubsub

我有一个边缘案例出现,一些消息卡在一个试图被拉动并在解析失败的循环中。我怎样才能摆脱所有这些消息?我用gcloud命令(gcloud beta pubsub subscriptions pull <SUBSCRIPTION> --auto-ack)尝试了--auto-ack,但它们仍在显示。

任何想法?

1 个答案:

答案 0 :(得分:2)

--auto-ack应该有效,除非您的订阅者正在积极运行,因此可能会保留这些消息,即acknowledgement deadline尚未通过。在这种情况下,邮件不会传递到gcloud工具,因为您的订阅者正在抓住这些邮件。你有几个选择:

  1. 关闭您的订阅者,等待ack截止日期已过,然后运行您指定的gcloud命令。然后,命令行工具应接收有问题的消息并进行确认。该命令会打印出它收到的消息。您可能还需要设置--max-messages选项,因为它默认为1.
  2. 更新您的订阅者以处理无法解析的这些消息。您可以决定对它们进行确认,也可以为此类消息创建单独的主题,将失败的消息发布到该主题,然后确认消息。这样,您仍然可以检查此不同主题上的消息(使用不同的订阅者/订阅),而不会妨碍您的主要订阅者。这通常称为dead letter queue