论坛

服装简介
 
通知事项
全部清除

云 酒馆 / 子简介  


太极
帖子:83
主持人
(@太极)
会员
已加入:8个月前

云 发布/订阅 是一个 fully managed real-time messaging service that allows you to send 和 receive messages between independent applications. This tutorial gives a brief 使用以下命令介绍Cloud 酒馆 / 子的命令行界面 gcloud 命令。

项目设置

Google 云 Platform将资源组织到项目中。这使您能够 在一个地方收集单个应用程序的所有相关资源。

云 酒馆 / 子需要一个项目来设置消息。

选择一个项目,或

创建您的第一个主题

打开Goog​​le 云 Shell

云 Shell 是一个 built-in command-line tool for the console. You're going to use 云 Shell来设置Cloud 酒馆 / 子。

通过单击打开Cloud Shell 

 
 

  控制台右上角导航栏中的按钮。

创建一个话题

A topic 是一个 named resource to which you will send messages. Create your first 使用以下命令进行主题:

gcloud pubsub主题创建我的主题

添加订阅

要接收消息,您需要创建订阅。订阅需要 有一个相应的主题。使用以下内容创建第一个订阅 命令:

gcloud pubsub订阅创建\ my-sub --topic my-topic \ --ack-deadline = 60
 
 

该命令创建一个名为 my-sub 附属于主题 my-topic。所有发布到的消息 my-topic 将交付给这个 订阅。

您可能会注意到 --ack-deadline=60 选项。 ack-deadline 代表 Acknowledgement deadline。这个新订阅有一个 Acknowledgement deadline 60秒我们将在稍后解释。

 

List topics 和 subscriptions

Before sending your first message, check if the topic 和 the subscription have been successfully created. List your topic 和 subscription using the following 命令:

gcloud pubsub主题列表
 
gcloud pubsub订阅列表

(env) [email protected]:~ (angular-theorem-281823)$ gcloud pubsub主题创建我的主题 Created topic [projects/angular-theorem-281823/topics/my-topic]. (env) [email protected]:~ (angular-theorem-281823)$ gcloud pubsub subscriptions create \ > my-sub --topic my-topic \ > --ack-deadline=60 Created subscription [projects/angular-theorem-281823/subscriptions/my-sub]. (env) [email protected]:~ (angular-theorem-281823)$ gcloud pubsub主题列表 --- name: projects/angular-theorem-281823/topics/my-topic (env) [email protected]:~ (angular-theorem-281823)$ gcloud pubsub订阅列表 --- ackDeadlineSeconds: 60 expirationPolicy: ttl: 2678400s messageRetentionDuration: 604800s name: projects/angular-theorem-281823/subscriptions/my-sub pushConfig: {} topic: projects/angular-theorem-281823/topics/my-topic (env) [email protected]:~ (angular-theorem-281823)$

 

将消息发布到主题

使用以下命令发送两条消息:

gcloud pubsub主题发布\ my-topic --message你好
 
gcloud pubsub主题发布\ my-topic --message再见
 

这些命令中的每一个都发送一条消息。第一条消息是 hello 和 the 第二个是 goodbye。成功发布消息后,您应该会看到 messageId returned from the server. This 是一个 unique ID automatically assigned 由服务器发送给每个消息。

(env) [email protected]:~ (angular-theorem-281823)$ gcloud pubsub topics publish \
>     my-topic --message hello
messageIds:
- '1268536160021218'
(env) [email protected]:~ (angular-theorem-281823)$ gcloud pubsub topics publish \
>     my-topic --message goodbye
messageIds:
- '1268518135841445'
(env) [email protected]:~ (angular-theorem-281823)$



从订阅中提取消息

拉信息

现在,使用以下命令提取消息:

gcloud pubsub订阅pull \ --auto-ack --limit = 2 my-sub
 
您可能看到了刚发布的两条消息。消息中包含数据, hello and goodbye, 以及 MESSAGE_ID。的 MESSAGE_ID is a 服务器分配的消息的唯一ID。

Note: 云 发布/订阅 doesn't guarantee the 要么 der of the messages. It 是一个lso 您可能只看到一条消息。在这种情况下,请尝试运行相同的 命令几次,直到看到其他消息。

Acknowledge 和 确认截止日期

After you pull a message 和 correctly process it, you must notify 云 发布/订阅 您已成功收到该消息。这个动作叫做 确认.

您可能已经注意到 --auto-ack 标志与 pull 命令。  --auto-ack flag automatically pulls the message 和 确认s it.

(env) [email protected]:~ (angular-theorem-281823)$ gcloud pubsub subscriptions pull \
>     --auto-ack --limit=2 my-sub
┌─────────┬──────────────────┬────────────┬──────────────────┐
│   DATA  │    MESSAGE_ID    │ ATTRIBUTES │ DELIVERY_ATTEMPT │
├─────────┼──────────────────┼────────────┼──────────────────┤
│ hello   │ 1268536160021218 │            │                  │
│ goodbye │ 1268518135841445 │            │                  │
└─────────┴──────────────────┴────────────┴──────────────────┘
(env) [email protected]:~ (angular-theorem-281823)$

 

手动确认

传送新讯息

使用以下命令发送新消息:

gcloud pubsub主题发布\ my-topic --message谢谢
 
 

再次拉信息

通过以下方式拉出消息:

gcloud pubsub订阅拉\ my-sub
 
 

这应该显示 thanks 消息,以及 MESSAGE_ID  ACK_ID.  ACK_ID 是一个nother ID that you can use for acknowledging the message.

确认消息

拉出邮件后,您需要先确认邮件 确认截止日期 已经过去了。例如,如果订阅是 配置为60秒 确认截止日期,就像我们在此所做的 教程中,您需要在拉出后60秒内确认消息 消息。否则,Cloud 酒馆 / 子将重新发送该消息。

使用以下命令确认消息(替换 ACK_ID  真正的复制/粘贴):

gcloud pubsub订阅ack \ my-sub --ack-ids ACK_ID
 
 
(env) [email protected]:~ (angular-theorem-281823)$ gcloud pubsub topics publish \
>     my-topic --message thanks
messageIds:
- '1268559392922740'
(env) [email protected]:~ (angular-theorem-281823)$ gcloud pubsub subscriptions pull \
>     my-sub
┌────────┬──────────────────┬────────────┬──────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│  DATA  │    MESSAGE_ID    │ ATTRIBUTES │ DELIVERY_ATTEMPT │                                                                                          ACK_ID                                                                                          │
├────────┼──────────────────┼────────────┼──────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ thanks │ 1268559392922740 │            │                  │ ISE-MD5FU0RQBhYsXUZIUTcZCGhRDk9eIz81IChFEgIHTwIoXXkxSzdBWXxoUQ0Zcn1gcmgMR1RREFJ2V1EaB2hObXUlcQwbdHVkcGNZGgMLR1F5W1szlIbwprWEwT8DSUX44r-dJiH0oq4tZiU9XhJLLD5-MDxFQV5AEkw7CURJUytDCypYEU4E │
└────────┴──────────────────┴────────────┴──────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
(env) [email protected]:~ (angular-theorem-281823)$

(env) [email protected]:~ (angular-theorem-281823)$ gcloud pubsub subscriptions ack \
>     my-sub --ack-ids ACK_ID
ERROR: (gcloud.pubsub.subscriptions.ack) INVALID_ARGUMENT: You have passed an invalid ack ID to the service (ack_id=ACK_ID).
(env) [email protected]:~ (angular-theorem-281823)$ gcloud pubsub subscriptions ack     my-sub --ack-ids ISE-MD5FU0RQBhYsXUZIUTcZCGhRDk9eIz81IChFEgIHTwIoXXkxSzdBWXxoUQ0Zcn1gcmgMR1RREFJ2V1EaB2hObXUlcQwbdHVkcGNZGgMLR1F5W1szlIbwprWEwT8DSUX44r-dJiH0oq4tZiU9XhJLLD5-MDxFQV5AEkw7CURJUytDCypYEU4E
Acked the messages 与 the following ackIds: [ISE-MD5FU0RQBhYsXUZIUTcZCGhRDk9eIz81IChFEgIHTwIoXXkxSzdBWXxoUQ0Zcn1gcmgMR1RREFJ2V1EaB2hObXUlcQwbdHVkcGNZGgMLR1F5W1szlIbwprWEwT8DSUX44r-dJiH0oq4tZiU9XhJLLD5-MDxFQV5AEkw7CURJUytDCypYEU4E]
{}
(env) [email protected]:~ (angular-theorem-281823)$
 

See the topic 和 the subscription in 发布/订阅 UI

到此结束 gcloud 命令行教程,但让我们看一下UI 在完成本教程之前,请先使用Google 云 Console。

You can also see the topics 和 subscriptions in the 发布/订阅 部分。

导航到“发布/订阅”部分

打开  在控制台的左侧。

然后,选择 发布/订阅 部分。

 

发布/订阅

 

的 UI also allows you to create 和 manage topics 和 subscriptions.

删除主题

Tick the tick box next to the topic that you created 和 click the  永久删除主题。

主题标签
分享: