如何解决有没有一种方法可以使用 Apache Beam 作业中的同步拉取来使用 Google PubSub 消息
我已经在下面的文档中浏览了谷歌提供的客户端库。给定的客户端库只是轮询来自 PubSub 的消息,但在我们创建无界源连接器之前它不会连续轮询。 https://cloud.google.com/pubsub/docs/pull#synchronous_pull
由于我尝试构建的源连接器是无界源,为此我需要处理检查点标记、实现 PubSub 阅读器、PubSub 拆分源并实现 ACK 和 NACK 逻辑,我相信这将花费大量时间是时候创建我自己的无界源连接器了。现在 PubSubIO(Beam api) 只支持异步拉取。那么有什么方法可以在Apache Beam提供的PubSubIO api之上实现ACK n NACK逻辑逻辑。有没有已经开发的api更适合这种用例。
通过同步拉取,您可以在任何解析失败的情况下确认预期的消息并否认消耗的消息。
解决方法
您期望的功能不存在,也不应该存在。
当前行为,异步拉取,获取消息,一旦消息被持久化(在工作线程或管道中的接收器中,两者中的第一个),消息就是 ACK。
在您的情况下,您希望根据管道处理手动确认消息。但是,您是limited to 10 minutes to ACK your messages with PubSub。想象一下,如果您构建一个窗口为 15 分钟(或更多)的管道。您需要等待窗口处理结束以确认消息;不可能!
就您而言,正确的设计是管理管道中的错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。