Google Cloud Pub/Sub

用于调用 Google Cloud Pub/Sub gRPC API 以发布消息并管理主题和订阅的类型化接口。

简介

Google Cloud Pub/Sub 是一种完全托管的消息传递服务,用于在独立应用程序之间发送和接收消息。该 gRPC API 通过 google.pubsub.v1.Publisher 服务(主题与发布)和 google.pubsub.v1.Subscriber 服务(订阅与消息投递)公开,在 pubsub.googleapis.com:443 上通过 TLS 访问。

请求和响应通过类型化类构建,例如 TsgcGRPCPubSubListTopicsRequest / TsgcGRPCPubSubListTopicsResponseTsgcGRPCPubSubTopicTsgcGRPCPubSubPublishRequest / TsgcGRPCPubSubPublishResponseTsgcGRPCPubSubSubscriptionTsgcGRPCPubSubPullRequest / TsgcGRPCPubSubPullResponseTsgcGRPCPubSubAcknowledgeRequest,因此您无需手动编码 Protocol Buffers。

下面的示例使用服务账户 JWT 进行身份验证,通过 TsgcHTTP2ClientTsgcGRPCClient 连接到 Pub/Sub 主机,设置授权 Bearer 元数据,并为某个项目调用 ListTopics


    oHTTP2 := TsgcHTTP2Client.Create(nil);
    oHTTP2.Host := 'pubsub.googleapis.com';
    oHTTP2.Port := 443;
    oHTTP2.TLS := True;

    oGRPC := TsgcGRPCClient.Create(nil);
    oGRPC.Client := oHTTP2;

    // service-account JWT authentication
    oGRPC.GoogleCloudOptions.JWT.KeyFile := 'service-account.json';
    oGRPC.GoogleCloudOptions.JWT.API_Endpoint := 'https://pubsub.googleapis.com/';
    oGRPC.DefaultMetadata.AddValue('authorization', 'Bearer ' + oGRPC.GoogleCloudOptions.JWT.Token);

    // build the typed request and call the method
    oRequest := TsgcGRPCPubSubListTopicsRequest.Create;
    try
      oRequest.Project := 'projects/my-project-id';
      oResponse := oGRPC.Call('google.pubsub.v1.Publisher', 'ListTopics', oRequest.ToBytes);
      ShowMessage(oResponse.DataString);
    finally
      oRequest.Free;
    end;

方法

名称描述
ListTopicsPublisher 服务:列出某个项目中存在的主题。
CreateTopicPublisher 服务:创建一个新主题。
DeleteTopicPublisher 服务:删除现有主题。
发布Publisher 服务:向某个主题发布一条或多条消息。
CreateSubscriptionSubscriber 服务:在某个主题上创建订阅。
DeleteSubscriptionSubscriber 服务:删除现有订阅。
PullSubscriber 服务:从某个订阅拉取消息。
AcknowledgeSubscriber 服务:确认从订阅收到的消息。
StreamingPullSubscriber 服务:通过流控制以双向流式方式投递消息。

演示

示例文件夹 Demos/21.GRPC/10.PubSub 中提供了一个可用的示例,演示如何进行身份验证,列出并创建主题,发布消息以及从订阅拉取消息。

另请参阅