首页 > 解决方案 > 如何使用 go 在 GCP Pub/Sub 中进行推送订阅?

问题描述

语境:

go中有一项使用grcp的服务。在该服务中,有一种一对一的方法:

rpc CreateOrder (Order) returns (OrderId)

我想在调用此方法的 Google Cloud Pub/sub 中创建推送订阅。我已经阅读了进行拉取订阅的方法,但我还没有找到 gRPC 的推送订阅。

是否可以通过 gRPC 创建推送订阅?

标签: google-cloud-platformgrpcpublish-subscribegoogle-cloud-pubsubgrpc-go

解决方案


Cloud Pub/Sub 是一个支持 gRPC 的 API。它同时具有 REST 和 RPC 接口。而Pub/Sub Go使用 gRPC。

要创建推送订阅,您需要在CreateSubscription函数中的SubscriptionConfig中设置PushConfig参数,该参数已在GCP 文档的Go 代码示例中设置:

sub, err := client.CreateSubscription(ctx, subID, pubsub.SubscriptionConfig{
                Topic:       topic,
                AckDeadline: 10 * time.Second,
                PushConfig:  pubsub.PushConfig{Endpoint: endpoint},
})

要更新订阅,您需要在更新函数的SubscriptionConfigToUpdate中设置PushConfig参数:

sub := client.Subscription("subName")
    subConfig, err := sub.Update(ctx, pubsub.SubscriptionConfigToUpdate{
        PushConfig: &pubsub.PushConfig{Endpoint: "https://example.com/push"},
    })


推荐阅读