验证数据已发送到GCP发布/订阅

时间:2020-08-27 11:21:25

标签: google-cloud-platform google-cloud-pubsub

我们有一个从传感器接收数据的项目,然后将数据发送到GCP。为此,我们使用了GCP的发布/订阅模型。这里的问题是当我们提取消息时,它们不是按顺序排列的。因此,我们无法验证已发送至GCP的数据是否已到达那里。 此外,GCP还提到他们不保证邮件https://cloud.google.com/pubsub/docs/ordering

的顺序

除了GCP建议的解决方案之外,还有其他更好的方法来验证此消息。

1 个答案:

答案 0 :(得分:0)

通常不能保证在Pub / Sub中订购,这是事实。但是,如您所链接的订购文档中所述,使用订购密钥时,可以保证订购。您将需要set an ordering key on published messagesenable message ordering on your subscription。目前,该文档仅显示了如何使用Java进行此操作,尽管很快还会有其他语言示例。

如果不使用排序,则可能monitor the backlog来查看num_undelivered_messages何时为0。但是,这样做有一些缺点:

  1. 您必须不断查询指标以查看其值。
  2. 计算度量标准的延迟为O(分钟),因此它可能是过时的,从而导致要么不跟踪最近发布的消息(导致消息显示的值小于积压的实际大小),要么不跟踪记录一些消息已传递和确认的事实(结果显示消息的值大于积压的实际大小)。

通常,对于Pub / Sub,最好在发布时订阅者始终运行并准备接收数据。 Cloud Pub / Sub保证订户能够接收成功发布的消息,前提是订户能够在消息保留期限内(默认为7天)接收消息。