GCP pubsub 文档提到了拉取模式的负载平衡,但不清楚如何使用它。
订阅或订阅者构建器 API 似乎都没有打开此功能的方法。
问题:如何在多个 pubsub 订阅者之间配置负载平衡?
背景:
我们对同一主题使用多个订阅者,以实现弹性。 (可以查询多个端点以获取来自同一数据存储的数据)。
订阅会保留消息,但如果不进行分发,所有订阅都会获取所有消息,从而导致数据存储中出现数据重复。也许这种背景将为实现弹性的另一种方法提供想法。
我们自己想到的事情:
- 使用多个数据存储...
- 标记消息,并对数据存储中的行进行某种乐观锁定/版本控制。
技术:
- GCP 发布订阅
- Spring Boot/数据
- JPA
- Postgres 数据库。
最佳答案
如果所有订阅者都收到所有消息,则您可能为每个订阅者使用不同的订阅。当不同的订阅者都从同一个订阅中提取数据时,就会发生负载平衡。来自 subscriber guide负载平衡的描述:“多个订阅者可以对同一“共享”订阅进行拉取调用。每个订阅者将收到消息的子集”(强调我的)。当您使用不同的订阅时,您会得到扇出,即所有订阅者都会收到所有消息。
关于google-cloud-platform - 订阅者负载平衡 - 是如何完成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51082339/