验证数据已发送到 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