【问题标题】:How to configure Non Persistent messages in GCP Pub Sub?如何在 GCP Pub Sub 中配置非持久消息?
【发布时间】:2021-11-08 02:53:15
【问题描述】:

我的架构包含多个订阅 GCP 主题的 pod。

每个 pod 在启动时处理消息,但对接收未启动时错过的消息不感兴趣。

在 ActiveMQ 中,这是非持久消息,但我在 GCP 中看不到等效消息。 我唯一想到的是消息的生命周期至少为 10 分钟。

这在 GCP 中是否可行?在哪里可以配置?

【问题讨论】:

  • 您使用推送订阅还是拉取订阅?

标签: java spring kubernetes google-cloud-pubsub jms-topic


【解决方案1】:

Cloud Pub/Sub 中没有禁用存储的选项。你有两个选择。

  1. 按照您的建议,将邮件保留时间设置为最短 10 分钟。这确实意味着您将在 pod 启动时收到长达十分钟的消息。这种方法的缺点是,如果您的 pod 出现问题并且它在处理消息方面落后了十分钟以上,那么即使它已启动,它也不会收到这些消息。

  2. 使用seek operation 并寻求向前寻找当前时间戳。当 pod 启动时,它可以做的第一件事是发出一个 Seek 命令,该命令将在提供的时间戳之前确认所有消息。请注意,此操作最终是一致的,因此当您最初启动订阅者时(或者,如果您使用推送,一旦您的端点启动),您可能仍会收到一些较旧的消息。还要记住,seek 操作是一种管理操作,因此仅限于6,000 operations a minute(每秒 100 次操作)。因此,如果您有很多经常重启的 pod,您可能会遇到这个限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-10
    • 2021-10-09
    • 2020-02-05
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 2019-04-10
    相关资源
    最近更新 更多