Javascript 如何仅使用主题名(而不是订阅名)订阅Google Cloud pubsub?

Javascript 如何仅使用主题名(而不是订阅名)订阅Google Cloud pubsub?,javascript,node.js,google-cloud-platform,publish-subscribe,google-cloud-pubsub,Javascript,Node.js,Google Cloud Platform,Publish Subscribe,Google Cloud Pubsub,我正在从事一个Nodejs项目,该项目向谷歌云平台PubSub发布和订阅数据。目前,我正在通过提供订阅名称订阅谷歌云平台PubSub。但为了提高性能,建议我找到一种方法,可以使用主题名而不是订阅名订阅PubSub-Topic。那么,我们有什么办法可以做到这一点吗?没有不使用订阅就订阅主题的概念,因此在Google Cloud Pub/Sub中这样做并不能提高性能。订阅是表示对发布到主题的消息感兴趣的逻辑实体。它也是附加消息是否已确认状态的实体。这意味着,如果您停止订阅服务器并重新启动它,您将不会

我正在从事一个Nodejs项目,该项目向谷歌云平台PubSub发布和订阅数据。目前,我正在通过提供订阅名称订阅谷歌云平台PubSub。但为了提高性能,建议我找到一种方法,可以使用主题名而不是订阅名订阅PubSub-Topic。那么,我们有什么办法可以做到这一点吗?

没有不使用订阅就订阅主题的概念,因此在Google Cloud Pub/Sub中这样做并不能提高性能。订阅是表示对发布到主题的消息感兴趣的逻辑实体。它也是附加消息是否已确认状态的实体。这意味着,如果您停止订阅服务器并重新启动它,您将不会收到成功确认的消息。这还意味着每个主题可以存在独立的订阅,其中每个订阅的订阅者接收所有消息。因此,订阅对于云发布/订阅的运行方式至关重要。

您不会通过收听主题来加快任何速度相反,您将减慢启动时间

事实上,如果没有订阅,您无法从Pubsub接收消息。如果您直接订阅某个主题,则会创建一个新的订阅,然后您开始收听该消息

如果您直接侦听订阅,则不必创建订阅,而且您可以更快地开始侦听消息

你需要面对的真正问题是:你的要求是什么

  • 您想保留所有消息吗,即使您的应用程序已关闭且未侦听订阅?->在这种情况下,您必须创建订阅。主题中发布的所有消息都会转发到所有订阅(根据筛选器,如果适用),并最多保留7天(默认情况下)。当然,当您开始监听订阅时,您将处理所有消息,首先是旧消息,然后是新消息,或者是新旧消息的混合。默认情况下,Pubsub不保证订单(除非您已激活ordered messages选项)
  • 您是否不在乎过去,只想处理即时/实时/新消息?->在这种情况下,请在应用程序启动时创建订阅。所有旧消息将不存在,只有新发布的消息被转发到新创建的订阅

此订阅不是针对特定/每个单独的主题吗?您对此有何需要?@guillaume如果我们直接使用主题而不是订阅特定主题来读取数据,则需要提高性能,因为现在,从数据流作业在GCP PubSub上发布数据到PubSub客户端在我的应用程序中接收数据之间的时间延迟为几秒钟。@Hsn我使用的订阅是特定于主题的。