对于消息数量在~100k范围内的pubsub主题,使用gcloud-java SDK排空/删除/清除/删除所有消息的最佳做法是什么?
可能的解决方案:
删除并重新创建订阅者,然后重新创建发布者
高并发拉+ ack(这种方式很容易达到配额)
我希望这个过程可以很快(不超过60秒),健壮,并且使用支持的SDK方法,只需要很少的其他代码。
答案 0 :(得分:33)
使用快照和搜索功能的说明进行更新: 可以在Pub / Sub订阅(当前为alpha)上使用seek来查找旧消息,方法是查找与现在相对应的时间戳。最好的方法是通过gcloud command line tool。确认发布到特定时间戳的消息的命令是:
gcloud alpha pubsub subscriptions seek <subscription path> --time=yyyy-mm-ddThh:mm:ss
在添加快照和搜索之前的先前答案: 目前,Google Cloud Pub / Sub无法清除旧版消息,但我们希望添加这些消息。在时间和成本方面,删除和重新创建订阅将是最有效的清除方式。您不必与发布商做任何事情;从重新开始后的点发布的任何消息将在重新创建的订阅上发送给订阅者。