在同一主题上创建多个订阅者以实现负载共享(pub/sub)

use*_*878 2 publish-subscribe rabbitmq google-cloud-pubsub

我花了几乎一天的时间在 google pub sub 文档上创建一个小应用程序。我正在考虑从rabbitMQ切换到google pub/sub。这是我的问题:

我有一个将消息推送到主题 (T) 的应用程序。我想通过订阅者进行负载共享。所以我为 T 创建了 3 个订阅者。我将所有 3 个订阅者的名称保持相同 (S),这样我就不会 3 次收到相同的消息。

我有 2 个问题:

  1. 我在控制台上没有看到 3 个相同的 T 订阅者。它显示 1
  2. 如果我尝试同时启动所有 3 个订阅者实例。我收到“发生服务错误。”。如果我按顺序开始,错误就会消失。

最后,谷歌认真对待 pub/sub 吗?查看文档和公众参与,我不确定是否应该切换到 google pub/sub。

谢谢,

Dav*_*vid 5

在发布/订阅中,每个订阅都会获取每条消息的副本。因此,为了负载平衡处理消息,您不需要 3 个不同的订阅,而是需要一个将消息分发给 3 个工作人员的订阅。

如果您使用拉取交付,只需创建一个订阅(作为设置系统时的一次性操作),并让每个工作人员从同一订阅中拉取。

如果您使用推送交付,请将单个订阅推送到提供负载平衡的单个端点(例如,推送到后端服务中具有多个实例的 HTTP 负载均衡器)

Google 非常重视 Pub/Sub,它已深入集成到许多产品(GCS、BigQuery、Dataflow、Stackdriver、Cloud Functions 等)中,并且 Google 在内部使用它。