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



我花了将近一天的时间在谷歌酒吧子文档上创建了一个小应用程序。我正在考虑从 rabbitMQ 切换到谷歌发布/订阅。这是我的问题:

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

我有 2 个问题:

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

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

谢谢

在发布/订阅中,每个订阅都会获得每条消息的副本。因此,若要对处理消息进行负载平衡,您不需要 3 个不同的订阅,而是需要将消息分发给 3 个工作线程的单个订阅。

如果使用拉取

传递,只需创建单个订阅(作为设置系统时的一次性操作(,并让每个辅助角色从同一订阅拉取。

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

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

根据GCP上的文档,https://cloud.google.com/pubsub/architecture。

可以使用负载平衡订阅者,但所有订阅者都必须使用相同的订阅。没有任何代码示例或 POC 准备就绪,但可以处理相同的代码示例或 POC。

最新更新