什么是 Cloud Pub/Sub?

Cloud Pub/Sub 将企业消息传递中间件所具备的灵活性和可靠性带到了到云端。同时,Cloud Pub/Sub 是一个可扩展、持久的事件提取和传送系统,可作为现代流分析流水线的基础。它提供将发送者和接收者分离的多对多异步消息传递,支持在独立编写的应用之间安全地进行通信并且保证高可用性。Cloud Pub/Sub 提供延迟低且持久的消息传递功能,可帮助开发者快速集成在 Google Cloud Platform 上以及外部托管的系统。

如果您是经验丰富的消息传递开发者并希望立即开始使用, 不妨试试从快速入门开始。如需了解更全面的介绍,请参阅构建一个正常运行的 Cloud Pub/Sub 系统。其他常见的入门教程还包括 Cloud Pub/Sub 文档概览客户端库

核心概念

  • 主题:发布者向其发送消息的已命名资源。
  • 订阅:代表从单个特定主题传送到订阅应用的消息流的已命名资源。如需详细了解订阅和消息传送语义,请参阅订阅者指南
  • 消息:发布者向主题发送并最终传送给订阅者的数据和(可选)属性的组合。
  • 消息属性:发布者可以为消息定义的键值对。例如,可以将键 iana.org/language_tag 和值 en 添加到消息中,将消息标记为可供英语订阅者阅读。

发布者-订阅者关系

发布者应用创建主题并将消息发送到主题。订阅者应用创建对主题的订阅以便从其接收消息。通信可以是一对多(扇出)、多对一(扇入)和多对多。

Cloud Pub/Sub 消息流

以下概括介绍 Cloud Pub/Sub 系统的组件以及消息如何在各组件之间流动:

  1. 发布者应用在 Cloud Pub/Sub 服务中创建主题,并向该主题发送消息。消息包含负载和描述负载内容的可选属性
  2. 该服务确保系统为订阅保留已发布的消息。在通过订阅使用消息的任何订阅者确认已发布的消息之前,系统会为该订阅一直保留该消息。
  3. Cloud Pub/Sub 将消息逐个从主题转发到其所有订阅。每个订阅通过 Cloud Pub/Sub 将消息推送到订阅者选择的端点,或者由订阅者从服务中提取消息
  4. 订阅者从其订阅接收待处理消息,并向 Cloud Pub/Sub 服务确认每条消息。
  5. 订阅者确认消息后,该消息将从相应订阅的消息队列中移除。

发布者和订阅者端点

发布者可以是能向 googleapis.com 发出 HTTPS 请求的任何应用:App Engine 应用、托管在 Google Compute Engine 或任何其他第三方网络上的网络服务、已安装的桌面应用或移动应用,甚至是浏览器。

拉取订阅者也可以是能向 googleapis.com 发出 HTTPS 请求的任何应用。

推送订阅者必须是可以通过 HTTPS 接受 POST 请求的 Webhook 端点。

常见使用场景

  • 平衡网络集群中的工作负载。 例如,可以在多个工作器(例如 Google Compute Engine 实例)之间高效地分配大量任务。
  • 实现异步工作流。 例如,订单处理应用可以对某主题下订单,由一个或多个工作器处理该订单。
  • 分发事件通知。 例如,每当新用户注册时,接受用户注册的服务可以发送通知,并且下游服务可以订阅以接收该事件的通知。
  • 刷新分布式缓存。 例如,应用可以发布无效化事件以更新发生更改的对象的 ID。
  • 将日志记录到多个系统。 例如,Google Compute Engine 实例可以将日志写入到监控系统、数据库(方便以后查询)等等。
  • 来自各种进程或设备的数据流。 例如,住宅传感器可以将数据流式传输到托管在云端的后端服务器。
  • 改进可靠性。 例如,单地区 Compute Engine 服务可以通过订阅一个公用主题来在其他地区中运行,以便在地区或区域中发生故障时恢复服务。

Cloud Pub/Sub 集成

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Pub/Sub 文档