验证数据已发送到 GCP Pub/Sub

Posted

技术标签:

【中文标题】验证数据已发送到 GCP Pub/Sub【英文标题】:Verify the data has reached sent to GCP Pub/Sub 【发布时间】:2020-12-16 06:34:39 【问题描述】:

我们有一个项目,它接收来自传感器的数据,然后我们将这些数据发送到 GCP。为此,我们使用了 GCP 的 Pub/Sub 模型。这里的问题是当我们提取消息时,它们不是有序的。所以我们无法验证我们发送到 GCP 的数据是否已经到达那里。 GCP也提到他们不保证消息的顺序https://cloud.google.com/pubsub/docs/ordering

除了 GCP 推荐的解决方案之外,还有任何更好的方法来验证此消息。

【问题讨论】:

【参考方案1】:

在 Pub/Sub 中一般不保证排序,但这是真的。但是,当使用您链接到的订购文档中描述的订购键时,可以保证订购。您需要set an ordering key on published messages 和enable message ordering on your subscription。目前,文档仅展示了如何在 Java 中执行此操作,不过其他语言示例即将推出。

如果不使用排序,您可能会 monitor the backlog 看到 num_undelivered_messages 何时为 0。但是,这有一些缺点:

    您必须不断查询指标才能查看其值。 计算度量的延迟为 O(分钟),因此它可能是陈旧的,导致不跟踪最近发布的消息(导致它显示的值小于积压的实际大小)或不跟踪记录一些消息被传递和确认的事实(导致它显示的值大于积压的实际大小)。

一般来说,Pub/Sub 最好让您的订阅者始终在运行并准备好在数据发布时接收数据。 Cloud Pub/Sub 保证订阅者能够收到成功发布的消息,前提是订阅者能够在默认为 7 天的消息保留期限内收到消息。

【讨论】:

以上是关于验证数据已发送到 GCP Pub/Sub的主要内容,如果未能解决你的问题,请参考以下文章

将 Angular 中的点击发送到 Google Pub/Sub

使用接收器导出日志时的标头配置

如何在 Google Pub/Sub 中验证外部发布者?

如何将 blob 文件发布到 GCP Pub/Sub?

Java 应用程序找不到访问 GCP Pub/Sub 的凭据

使用 Tibco 和 GCP Pub/Sub 将旧的 On-Prem .Net 应用程序集成到 GCP