使用API向GCP publicsub发布消息耗时



我在mongodb云平台上有一个node js应用程序,它将用于在GCP pubsub中发布100万条消息到一个主题。由于平台不支持npm包@google-cloud/pubsub,我们使用了pubsub的API参考来实现它。在加载测试的应用程序,我可以看到每条消息需要50秒发布到主题。理想情况下,它应该少于5秒。access_token API调用大约需要30秒,消息发布API调用大约需要20秒。由于每个消息发布都是一个独立的事件,我们不能维护会话来存储access_token并重用它,并且API_KEY身份验证方法不可用于GCP PubSub。与使用库@google-cloud/pubsub相比,gcp pubsub的API方法是否非常慢?谁能提出一个使用api提高GCP PubSub性能的解决方案?

PubSub客户端库在几个方面得到了极大的优化。第一个是使用gRPC协议代替REST API。然后,在推送到PubSub之前进行消息聚合(默认情况下等待500ms)。然后,有各种异步机制来并行化处理。

所以,客户端库团队完成了一个巨大而伟大的工作,很难(或昂贵)在你这边复制。但是你可以,源代码是公开的,你可以去客户端库看看!

access_token检索的30s太长。你确定没有网络问题吗?在任何情况下,这个令牌都对1H有效。如果您可以在随后的调用中重用它,您将节省大量时间!

最新更新