从 PubSubIO 读取:fromTopic 与 fromSubscription
Reading from PubSubIO: fromTopic vs fromSubscription
我在一些示例代码中看到似乎是直接从主题中读取的?
PubsubIO.readStrings().fromTopic(fullTopic))
和
有区别吗
PubsubIO.readStrings().fromSubscription(fullTopic))
(我一直觉得你必须订阅一个主题...)
是的,有区别。请注意,fromSubscription
方法采用订阅路径,而不是主题路径。如果使用 fromTopic
,则会创建一个新订阅。因此,将不会读取在代码运行之前发布的任何消息。每次代码运行时,最终也会创建一个新订阅。
相比之下,fromSubscription
使用现有订阅,这意味着在创建订阅后随时发布的消息都将被读取。如果作业停止并重新启动,则读取可以从停止的地方继续。
我在一些示例代码中看到似乎是直接从主题中读取的?
PubsubIO.readStrings().fromTopic(fullTopic))
和
有区别吗PubsubIO.readStrings().fromSubscription(fullTopic))
(我一直觉得你必须订阅一个主题...)
是的,有区别。请注意,fromSubscription
方法采用订阅路径,而不是主题路径。如果使用 fromTopic
,则会创建一个新订阅。因此,将不会读取在代码运行之前发布的任何消息。每次代码运行时,最终也会创建一个新订阅。
相比之下,fromSubscription
使用现有订阅,这意味着在创建订阅后随时发布的消息都将被读取。如果作业停止并重新启动,则读取可以从停止的地方继续。