GCP发布/订阅,如果已经有活动的订阅,您可以在新订阅上重播旧消息吗?

时间:2019-11-15 17:30:37

标签: google-cloud-platform google-cloud-pubsub

在GCP发布/订阅中。

我有一个主题,并创建了Subscription1并开始发布消息。

我可以添加另一个订阅Subscription2,并且可以重播在创建Subscription2之前发布的旧消息吗?

在什么时候我将失去对邮件的访问权限(在保留期内)?删除所有订阅?保留至少一个活动的订阅将允许PubSub添加新的订阅并重播旧消息吗?

我还可以将主题的保留期延长至7天以上吗?

编辑:消息将保留在数据库中,但是我对发布/订阅体系结构更感兴趣

2 个答案:

答案 0 :(得分:3)

发布到主题的消息仅可用于在发布 之前发布的订阅。如果您在下午1点发布消息并在下午2点进行订阅,则不可能在下午2点之前发布任何消息。

我认为Pub / Sub是一种传输和交付技术,而不是将其视为存储库。如果您认为可能需要在订阅之前就已发布的消息,请考虑一种设计模式,在其中添加一个特殊的订阅者,该订阅者接受发布的每条消息,并将其插入到数据存储中以供后续检索。

如果现在发现您需要历史消息,则可以在该商店中查询历史项,同时订阅随后将要到达的新项。

答案 1 :(得分:2)

基于Subscription1存在的事实依赖于能够在Subscription2中重播消息并不是很好。对于存在Subscription2之前发布的消息,不提供任何保证。唯一的例外是,如果要在Subscription1上捕获快照,然后在Subscription2上查找该快照,那么您将看到在Subscription2存在之前发布的消息。但是,您只会看到不超过7天的消息。因此,如果快照的创建时间超过7天,则不会看到较旧的消息。

无法将保留期延长至7天以上。通常,Kolban的评估符合Cloud Pub / Sub的目标:这是一种可靠的消息传输服务。消息保留的目的是确保如果订户在一段时间内宕机,一旦恢复,他们将收到在该时间内发送的消息。对于快照和查找来说是相同的:对于从可能已确认其不应接收的消息的订户的不良部署中恢复的情况,这些功能特别有用。使用搜寻功能可以使这些消息重播,以便在订阅者修复后就可以对其进行正确处理。