【问题标题】:Firestore Event Listeners conflict within Containers容器内的 Firestore 事件侦听器冲突
【发布时间】:2020-08-07 12:45:23
【问题描述】:

在我的应用程序中,如果发生任何更改,我会让监听器监听 firestore 文档,当应用程序部署到 AWS/OS/GCP 并且 pod 大小大于 1 时会出现问题。如果 pod 大小大于 1,那么意味着我有超过 1 个侦听器在监听同一个对象,因此当发生更改时,我现在尝试处理这些多个事件更改。

在高层次上,我可以实施什么来确保即使同一个侦听器被并行触发多次(基于活动的 pod 数),也只处理 1 个更改。

【问题讨论】:

    标签: google-cloud-platform google-cloud-firestore


    【解决方案1】:

    您遇到的问题无法通过您当前的架构轻松避免。

    您应该考虑使用Cloud Functions 来触发对文档的更改。 Firestore triggers 每次文档更改只会执行一次(除非出现罕见的重复事件,您必须自行删除重复事件),但可以扩展到 1000 个并发服务器实例来处理负载。然后,如果需要,您可以在之后做一些事情来向您的应用程序发出信号。

    【讨论】:

    • 考虑到即使我有一个唯一的 ID 也会出现这种情况?另一种解决方案是使用某种队列 activemq、rabbitmq 等。
    • 所以云功能确保事件至少一次得到处理,然后让该云功能对我的服务/应用程序进行 POST。明白了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2013-11-26
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多