首页 > 解决方案 > 从 PubSubIO 读取:fromTopic 与 fromSubscription

问题描述

我在一些似乎直接从主题中读取的示例代码中看到了?

PubsubIO.readStrings().fromTopic(fullTopic))

那和那有区别吗

PubsubIO.readStrings().fromSubscription(fullTopic))

(我一直觉得你必须订阅一个主题......)

编辑:使用 fromTopic 添加示例链接

标签: javagoogle-cloud-dataflowgoogle-cloud-pubsubapache-beam-io

解决方案


是的,有区别。请注意,该fromSubscription方法采用订阅路径,而不是主题路径。如果使用fromTopic,则将创建一个新订阅。因此,在代码运行之前发布的任何消息都不会被读取。每次代码运行时,最终都会创建一个新订阅。

相反,fromSubscription使用现有订阅,这意味着将读取创建订阅后任何时间发布的消息。如果作业停止并恢复,则读取可以从中断的地方继续。


推荐阅读