多个订阅主题

时间:2018-11-14 21:32:24

标签: redis rabbitmq message-queue publish-subscribe google-cloud-pubsub

我一直在使用pubsub进行一些异步工作,并且想知道为什么有人可以为一个主题创建多个订阅。我的默认值如下:

project_id = 'project'
topic_name = 'app'
subscription_name = 'general'

subscriber接收器本身正在执行实际功能的路由以及如何执行该功能。

为什么会有各种各样的订阅名称?我唯一想到的就是将项目分散到多个服务器上进行处理,例如:

server1 -- `main-1`
server2 -- `main-2`
etc.

还有其他原因为什么订阅名称不能与一个值一起很好地工作?

1 个答案:

答案 0 :(得分:4)

通常,拥有多个订阅者有两种范例:

  1. 负载平衡:目标是通过让多个订阅者使用同一订阅来并行化负载处理。在这种情况下,每个订户都会收到消息的子集。通过为同一订阅创建更多订阅者,可以水平扩展处理。

  2. 发出警告:目标是让多个订户接收整个消息源。这可以通过具有多个订阅来完成。出现扇出的原因是,如果有多个下游应用程序对完整的消息馈送感兴趣。假设有一个供稿,其中消息是购物网站上的用户事件。也许一个应用程序将数据备份到文件中,另一个应用程序分析供稿以了解人们所关注的趋势,而另一个应用程序则通过活动来查找潜在的欺诈交易。在这种情况下,充当订阅者的每个应用程序都需要完整的消息提要,这需要单独的订阅。