gpt4 book ai didi

message-queue - 可以使用数据流将 pubsub 消息重复数据删除回 pubsub 吗?

转载 作者:行者123 更新时间:2023-12-04 03:40:16 26 4
gpt4 key购买 nike

我有一个将数据写入 Google Cloud pubsub 的应用程序,根据 pubsub 的文档,由于重试机制导致的重复是偶尔会发生的事情。还有乱序消息的问题,这在 pubsub 中也不能保证。

另外,根据文档,可以使用 Google Cloud Dataflow 对这些消息进行重复数据删除。

我想让这些消息在消息队列(意思是云 pubsub)中可用以供服务使用,云数据流似乎有一个 pubsubio 编写器但是你不会回到完全相同的问题写入到pubsub 可以创建重复项吗?这不也是与订单相同的问题吗?如何使用 pubsub(或与此相关的任何其他系统)按顺序流式传输消息?

是否可以使用云数据流从一个 pubsub 主题读取并写入另一个 pubsub 并保证没有重复?如果不是,您会怎么做以支持流式传输相对少量的数据?

此外,我对 Apache beam/Cloud Dataflow 还很陌生。这样一个简单的用例会是什么样子?我想我可以使用 pubsub 本身生成的 ID 进行重复数据删除,因为我让 pubsub 库进行内部重试而不是自己进行重试,因此重试时 ID 应该相同。

最佳答案

Cloud Dataflow/Apache Beam 是 Mac 卡车。它们专为大型数据源/流的并行化而设计。您可以向 PubSub 发送大量数据,但检测重复不是 Beam 的工作,因为此任务需要序列化。

阅读 PubSub 然后写入不同的主题并不能消除重复的问题,因为重复可能发生在您正在写入的新主题上。此外,队列写入的并行化进一步增加了乱序消息的问题。

重复的问题需要在从订阅读取的客户端上解决。一个简单的数据库查询可以让您知道某个项目已被处理。然后你就丢弃这条消息。

处理乱序消息也必须设计到您的应用程序中。

PubSub 被设计成一个轻量级的廉价消息队列系统。如果您需要有保证的消息排序、无重复、FIFO 等。您将需要使用不同的解决方案,这当然要昂贵得多。

关于message-queue - 可以使用数据流将 pubsub 消息重复数据删除回 pubsub 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55111375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com