如何用listen serve实现pub/sub谷歌



问题是当我需要从谷歌获得pub/sub消息并同时运行一个rest api时

err = client.Subscription("my-sub").Receive(ctx, func(ctx context.Context, msg *pubsub.Message) {
var data Data
json.Unmarshal(msg.Data, &data)
msg.Ack()
})
log.Printf("connect to http://localhost:%s/ for api Rest", port)
log.Fatal(http.ListenAndServe(":"+port, nil))

"回调由多个goroutine同时调用,从而最大限度地提高吞吐量。要终止对Receive的调用,请取消其上下文"-从…起https://pkg.go.dev/cloud.google.com/go/pubsub?tab=doc

听起来您需要一个REST API,为客户端提供请求以前接收到的Pub/Sub消息(msg.Data(的能力

"包http提供http客户端和服务器实现"-从…起https://pkg.go.dev/net/http?tab=doc#example-处理

您需要存储或缓存从Pub/Sub收到的消息,以便在他们发出HTTP请求时可以将其发送到您的HTTP客户端。

最新更新