Google Cloud (GCP) Pub/Sub 是否支持与 Kafka 中的 ConsumerGroups 类似的功能

skj*_*ini 1 apache-kafka google-cloud-platform google-cloud-pubsub kafka-consumer-api

尝试在 Google Cloud (GCP) Pub/Sub 与 Manager Kafka Service 之间做出选择。

在最新的更新中,Pub/Sub 添加了对重放之前处理过的消息的支持,这是一个值得欢迎的变化。

我在他们的文档中找不到的一个功能是,我们是否可以拥有类似于 Kafka 消费者组的功能,即拥有一组订阅者,每个订阅者处理来自同一主题的数据,并且能够从头开始重新处理数据订阅者(消费群体)而其他人则不受其影响。例如:

假设您有一个主题 StockTicks

你有两个消费者群体

CG1:有两个消费者
CG2:有另外两个消费者

在 Kafka 中,我可以独立读取这些组之间的消息,但我可以使用 Pub/Sub 做同样的事情吗?

而且Kafka允许你从头开始重放消息,我可以对Pub/Sub做同样的事情吗?如果我不能重放CG创建之前发布的消息,我可以,但是我可以重放CG创建之后提交的消息吗? CG/订阅者已创建?

Kam*_*osn 6

Cloud Pub/Sub 相当于 Kafka 的消费者组,即订阅。订阅者相当于消费者。这个答案更详细地阐明了订阅和订阅者之间的关系。

您在 Cloud Pub/Sub 条款中的示例将有一个主题 StockTicks,有两个订阅(称为 CG1 和 CG2)。您将启动四个订阅者,其中两个为订阅 CG1 获取消息,另外两个为 CG2 订阅获取消息。确认和重播在 CG1 和 CG2 上是独立的,因此如果您要在 CG1 上查找,则根本不会影响向 CG2 的订阅者传递消息。

请记住,对于 Cloud Pub/Sub,只有成功创建订阅后发布的消息才会传递给该订阅的订阅者。因此,如果您创建新的订阅,您将不会获得自开始以来发布的所有消息;从那时起您只会收到发布的消息。

如果您返回订阅,则最多只能重播 7 天的消息(假设订阅至少是在 7 天前创建的),因为这是 Cloud Pub/Sub 中消息的最长保留时间。