Google Cloud Pub / Sub控制台查看消息非常慢

问题描述

有帮助吗?我有一个物联网设备,正在使用MQTT进行发布/订阅。我想在“发布/订阅”控制台中查看消息,但是可能需要一个小时才能显示出来,有时甚至根本看不到。我单击“查看消息”,它显示了几天前的消息。等待几分钟,然后再次单击,将显示一些较新的消息,但没有我需要看到的消息。继续这样做一个小时左右,最后我走到尽头,它可能有也可能没有最新消息。如果几天后再回来,那么我会看到我希望看到的消息。如何快速查看最新消息?

这是我的订阅设置的屏幕截图。我已经尝试过Retain = Yes和No。

Subscription settings

这是我今天进行的第一次拉拔的屏幕截图。几天的旧消息。我确实选中了“启用ACK消息”,并根据顶部的注释“一次仅提取几条消息”。但是,正如您在以后的屏幕截图中看到的那样,我以相同的效果将其关闭

First pull,top of the page

First pull,bottom of the page

几分钟后,我们就在这里。不是很清楚今天的消息,而是越来越近。

Second pull

等待几分钟,好吧,现在又出现了一条消息,但糟糕!输了最新的。嗯。

Third pull

让我们关闭“启用ACK消息”。不,还是一样。

Enable ACK messages unchecked,top of the page

Enable ACK messages unchecked,bottom of the page

再等五分钟,糟糕! 17日再次丢失了该消息。从今天起还是一无所有。已经大约二十分钟了,我现在要放弃了。将在一个小时左右的时间内再次检查。

您有这个问题吗?您如何解决呢?

Second pull with ACK disabled

解决方法

如果有很多消息发布到某个主题,则控制台将不是查找和查看特定消息的好方法。控制台是获取正在发布的消息样本的好方法,但是不能保证将返回哪些消息。此外,除非使用ordering keys and an ordered subscription,否则Cloud Pub / Sub不提供任何订购保证。

通过控制台检索消息时,Pull请求将发送到服务器。服务器将尝试尽快通过消息满足此请求,并且它将从任何分布式服务器首先返回消息的地方获取消息。这意味着消息可能随时发布。如果单击该按钮发出更多请求,则将再次发生。

如果您要检查特定的消息,则应该设置订阅者以阅读消息并检查正在寻找的消息,这可能是通过使用Cloud Pub/Sub client libraries来完成的。