使用客户端库在 Pub/Sub 中发布和接收消息
利用 Pub/Sub 服务,应用能够可靠、快速地异步交换消息。以下是事件序列:
- 具体过程为:数据提供方将消息发布到 Pub/Sub 主题;
- 订阅者客户端会创建对该主题的订阅,并处理来自该订阅的消息。
您可以使用以下任一方法设置 Pub/Sub 环境:Google Cloud Console、Cloud Shell、客户端库或 REST API。本页面介绍如何开始使用客户端库发布 Pub/Sub 消息。
如需直接在 Google Cloud Console 中执行此任务的分步指南,请点击操作演示:
以下部分将引导您完成与点击操作演示相同的步骤。
准备工作
- 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Cloud Pub/Sub API。
-
创建服务帐号:
-
在 Cloud Console 中,转到创建服务帐号页面。
转到“创建服务帐号” - 选择您的项目。
-
在服务帐号名称字段中,输入一个名称。Cloud Console 会根据此名称填充服务帐号 ID 字段。
在服务帐号说明字段中,输入说明。例如,
Service account for quickstart
。 - 点击创建并继续。
-
如需提供对项目的访问权限,请向服务帐号授予以下角色:Pub/Sub > Pub/Sub Admin 。
在选择角色列表中,选择一个角色。
如需添加其他角色,请点击
添加其他角色,然后添加其他各个角色。 - 点击继续。
-
点击完成以完成服务帐号的创建过程。
不要关闭浏览器窗口。您将在下一步骤中用到它。
-
-
创建服务帐号密钥:
- 在 Cloud Console 中,点击您创建的服务帐号的电子邮件地址。
- 点击密钥。
- 点击添加密钥,然后点击创建新密钥。
- 点击创建。JSON 密钥文件将下载到您的计算机上。
- 点击关闭。
-
将环境变量
GOOGLE_APPLICATION_CREDENTIALS
设置为包含您的服务帐号密钥的 JSON 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。 - 安装并初始化 Google Cloud CLI。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 Cloud Pub/Sub API。
-
创建服务帐号:
-
在 Cloud Console 中,转到创建服务帐号页面。
转到“创建服务帐号” - 选择您的项目。
-
在服务帐号名称字段中,输入一个名称。Cloud Console 会根据此名称填充服务帐号 ID 字段。
在服务帐号说明字段中,输入说明。例如,
Service account for quickstart
。 - 点击创建并继续。
-
如需提供对项目的访问权限,请向服务帐号授予以下角色:Pub/Sub > Pub/Sub Admin 。
在选择角色列表中,选择一个角色。
如需添加其他角色,请点击
添加其他角色,然后添加其他各个角色。 - 点击继续。
-
点击完成以完成服务帐号的创建过程。
不要关闭浏览器窗口。您将在下一步骤中用到它。
-
-
创建服务帐号密钥:
- 在 Cloud Console 中,点击您创建的服务帐号的电子邮件地址。
- 点击密钥。
- 点击添加密钥,然后点击创建新密钥。
- 点击创建。JSON 密钥文件将下载到您的计算机上。
- 点击关闭。
-
将环境变量
GOOGLE_APPLICATION_CREDENTIALS
设置为包含您的服务帐号密钥的 JSON 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。 - 安装并初始化 Google Cloud CLI。
安装客户端库
以下示例向您展示了如何安装客户端库:
Python
如需详细了解如何设置 Python 开发环境,请参阅 Python 开发环境设置指南。
# ensure that you are using virtualenv
# as described in the python dev setup guide
pip install --upgrade google-cloud-pubsub
C++
如需详细了解如何安装 C++ 库,请参阅 GitHub README
。
C#
Install-Package Google.Cloud.PubSub.V1 -Pre
Go
go get cloud.google.com/go/pubsub
Java
如果您使用的是 Maven,请将以下代码添加到您的 pom.xml
文件中。如需详细了解 BOM,请参阅 Google Cloud Platform 库 BOM。
如果您使用的是 Gradle,请将以下代码添加到您的依赖项中:
如果您使用的是 sbt,请将以下代码添加到您的依赖项中:
如果您使用的是 Visual Studio Code、IntelliJ 或 Eclipse,可以通过以下 IDE 插件将客户端库添加到您的项目中:
上述插件还提供其他功能,例如服务帐号密钥管理。如需了解详情,请参阅各个插件相应的文档。
Node.js
npm install --save @google-cloud/pubsub
PHP
composer require google/cloud-pubsub
Ruby
gem install google-cloud-pubsub
创建主题和订阅
创建主题后,您可以订阅该主题或向其发布消息。
使用 gcloud pubsub topics create 命令创建主题:
gcloud pubsub topics create my-topic
使用 gcloud pubsub subscriptions create 命令创建订阅。订阅者应用只能获取创建订阅后发布到该主题的消息。
gcloud pubsub subscriptions create my-sub --topic my-topic
如需详细了解如何命名您的主题和订阅,请参阅资源名称。
发布消息
在以下示例中,请使用 my-topic
作为主题 ID。
Python
C++
C#
Go
Java
Node.js
PHP
Ruby
接收消息
设置订阅者以拉取您刚刚发布的消息。每个订阅者必须在可配置的时间范围内确认每条消息。未确认的消息将被再次传送。请注意,Pub/Sub 偶尔会将一条消息传送多次,这是为了确保所有消息至少发送到订阅者一次。
在以下示例中,请使用 my-sub
作为订阅 ID。
Python
C++
C#
Go
Java
Node.js
PHP
Ruby
结果怎么样?
清理(可选)
为避免系统因本指南中使用的资源向您的 Google Cloud Platform 帐号收取费用,您可以使用命令行删除主题和订阅。
gcloud pubsub subscriptions delete my-sub gcloud pubsub topics delete my-topic
后续步骤
请参阅“什么是 Pub/Sub?”。
如需查看端到端示例,请参阅构建 Pub/Sub 系统。
如需查看其他用例,请参阅 Pub/Sub 教程。
要获取有关所选语言的客户端库的详细信息,请参阅客户端库。
如需了解如何使用 Kotlin 来运行 Pub/Sub,请参阅此博文。