当我们使用 Google Cloud PubSub 和 Fluentd 订阅者时,如何使消息幂等?

How to make the message idempotent when we use Google Cloud PubSub and Fluentd subscribers?

我正在尝试使日志数据与 Google Cloud PubSub 和 Fluentd 订阅者一起流动。 该架构是,首先,一组 Web 服务器将它们的访问日志发送到同一个 PubSub 端点,其次,Fluentd 服务器从 PubSub 端点提取日志并将它们发送到 Google BigQuery 和其他子系统。

我的问题是如何在这样的架构中保持消息的幂等性。 根据 Google Cloud Pubsub 的文档,订阅者应该负责保持日志的幂等性。 https://cloud.google.com/pubsub/docs/subscriber#delivery-contract

但我不确定在许多流畅的服务器上执行此操作的好方法(如果可能的话,简单的方法)。 你有什么好主意吗?

将大数字设置为 ackDeadlineSeconds 似乎足以避免在常见情况下重复的日志。 https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/create