我已经注意到,在高负载下,pubsub提供了很高的吞吐量和相当低的延迟。但是,如果我想发送一条消息,延迟时间通常可以是几秒钟。我在传入消息中使用了publish_time来查看消息在队列中花费了多长时间,而且它通常非常低。无法判断在非常低的流量条件下,发布的消息是否会立即由客户端库发送,或者库是否没有立即将其传递给应用程序。我在Python中使用异步拉。
发布于 2022-10-24 11:43:07
可以有几个因素影响低吞吐量Pub/Sub流的延迟。首先,发布端客户端库在默认情况下需要等待一段时间才能尝试批处理消息。通过将max_messages属性的pubsub_v1.types.BatchSettings设置为1,可以得到一些改进,这将确保每条消息一准备就绪就发送出去。
一般来说,也有冷藏室的问题,在酒吧/分局服务。如果您的发布速率不高,例如,每10-15分钟就有O(1)次发布调用,那么服务可能必须在每个发布上加载状态,从而延迟传递。如果这些消息的低延迟非常重要,那么我们当前的建议是每隔几秒钟发送一次心跳消息,以保持所有状态都处于活动状态。您可以向消息添加一个属性,以指示它是一条心跳消息,并让您的订阅者忽略它们。
https://stackoverflow.com/questions/74146304
复制相似问题