Google cloud platform GCP发布/订阅,如果已有活动订阅,是否可以在新订阅上重播旧消息

Google cloud platform GCP发布/订阅,如果已有活动订阅,是否可以在新订阅上重播旧消息,google-cloud-platform,google-cloud-pubsub,Google Cloud Platform,Google Cloud Pubsub,在GCP发布/订阅中 我有一个主题,创建了Subscription1并开始发布消息 我可以添加另一个订阅Subscription2吗?我可以重播在创建订阅2之前发布的旧邮件吗 在保留期内,我将在什么时候失去对具有的邮件的访问权限?删除所有订阅?保持至少一个活动订阅将允许PubSub添加新订阅并重播旧邮件 我是否可以将该主题的保留期延长到7天以上 编辑:消息将被持久化到DB,但我更感兴趣的是发布/订阅体系结构发布到主题的消息仅可用于发布这些消息之前的订阅。如果您在下午1点发布消息并在下午2点订阅,

在GCP发布/订阅中

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

我可以添加另一个订阅Subscription2吗?我可以重播在创建订阅2之前发布的旧邮件吗

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

我是否可以将该主题的保留期延长到7天以上


编辑:消息将被持久化到DB,但我更感兴趣的是发布/订阅体系结构

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

我认为Pub/Sub是一种传输和交付技术,而不是将其视为存储库。如果您认为您可能需要在订阅之前发布的消息,请考虑一种设计模式,在该模式中添加一个特殊订阅服务器,该订阅服务器将发布的每个消息插入到数据存储库中以供后续检索。
如果您现在发现需要历史邮件,则可以在订阅随后将到达的新邮件时查询该存储中的历史邮件。

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

我认为Pub/Sub是一种传输和交付技术,而不是将其视为存储库。如果您认为您可能需要在订阅之前发布的消息,请考虑一种设计模式,在该模式中添加一个特殊订阅服务器,该订阅服务器将发布的每个消息插入到数据存储库中以供后续检索。
如果您现在发现需要历史邮件,则可以在订阅随后将到达的新邮件的同时查询该存储中的历史邮件。

依靠订阅1存在的事实在订阅2中重播邮件是不好的。在Subscription2存在之前发布的消息不提供任何保证。唯一的例外是,如果要在Subscription1上捕获快照,然后在Subscription2上查找该快照,则会看到在Subscription2存在之前发布的消息。但是,您只能看到不超过七天的消息。因此,如果快照超过七天,则不会看到旧消息


无法将保留期延长到7天以上。总的来说,Kolban的评估符合云发布/订阅的目标:它是一个可靠的消息传输服务。消息保留的目标是确保如果订阅者停机一段时间,他们将在恢复后收到在该时间内发送的消息。snapshot和seek也是如此:在从订阅服务器的错误部署中恢复时,它们特别有用,因为订阅服务器可能已经确认了它不应该拥有的消息。使用seek可以重播这些消息,以便在订阅服务器修复后可以正确处理这些消息。

依赖订阅1存在的事实重播订阅2中的消息是不好的。在Subscription2存在之前发布的消息不提供任何保证。唯一的例外是,如果要在Subscription1上捕获快照,然后在Subscription2上查找该快照,则会看到在Subscription2存在之前发布的消息。但是,您只能看到不超过七天的消息。因此,如果快照超过七天,则不会看到旧消息


无法将保留期延长到7天以上。总的来说,Kolban的评估符合云发布/订阅的目标:它是一个可靠的消息传输服务。消息保留的目标是确保如果订阅者停机一段时间,他们将在恢复后收到在该时间内发送的消息。snapshot和seek也是如此:在从订阅服务器的错误部署中恢复时,它们特别有用,因为订阅服务器可能已经确认了它不应该拥有的消息。使用seek可以重播这些消息,以便在订户修复后可以正确处理这些消息。

您可以这样做,但它会破坏发布/订阅的目的
必须自己进行偏移量管理等。将给我们一段时间来检查我们是否可以使用Subscription2上创建之前发布的邮件,考虑到在使用replay之前Subscription1处于活动状态。为了补充答案,不可能增加保留期,这是在订阅级别设置的。你可以这样做,但它违背了发布/订阅的目的,考虑到您必须自己进行偏移量管理等。考虑到使用replay之前Subscription1处于活动状态,我们将尝试一段时间来检查是否可以使用Subscription2上创建之前发布的消息。为了补充答案,无法增加保留期,这是在订阅级别设置的。如果我可以在过去7天内每天自动创建快照,这是否允许可靠地使用其他订阅上的邮件?什么阻止了我做这件事?什么也阻止不了。你只需要设置自动化。您不能确认订阅上的任何消息,您可以从中获取快照,以接收所有消息。哦,好的,不确认订阅1上的任何消息需要很多时间,因为订阅1比订阅2提前,所以我可以在所有订阅上重播快照吗,在订阅1上确认消息不应该影响订阅2?是吗?假设您有订阅1,然后设置了消息A、B和C。您确认消息A。现在,您拍摄快照。然后创建Subscription2。您将搜索到为Subscription1拍摄的快照。现在,您将只获得消息B和C。如果您每天拍摄SubSCrOption1的快照并继续确认消息,则在搜索时将不会获得这些已确认的消息。您可以在拍摄后续快照之前在Subscription1上搜索,但这意味着所有消息也将重新传递到Subscription1。创建服务以重新处理异常情况的任何方式,都可以在出现需求时处理这些情况,感谢您花时间解释,如果我能在过去7天内每天创建自动快照,这是否允许可靠地使用其他订阅上的消息?什么阻止了我做这件事?什么也阻止不了。你只需要设置自动化。您不能确认订阅上的任何消息,您可以从中获取快照,以接收所有消息。哦,好的,不确认订阅1上的任何消息需要很多时间,因为订阅1比订阅2提前,所以我可以在所有订阅上重播快照吗,在订阅1上确认消息不应该影响订阅2?是吗?假设您有订阅1,然后设置了消息A、B和C。您确认消息A。现在,您拍摄快照。然后创建Subscription2。您将搜索到为Subscription1拍摄的快照。现在,您将只获得消息B和C。如果您每天拍摄SubSCrOption1的快照并继续确认消息,则在搜索时将不会获得这些已确认的消息。您可以在拍摄后续快照之前在Subscription1上搜索,但这意味着所有消息也将重新传递到Subscription1。任何创建服务以重新处理异常场景的方法,都可以在出现需求时处理这些,感谢您花时间解释