我们将选择Google Cloud Pub / Sub作为我们的MQ。有些消息需要在较短的延迟时间内发送,例如<100-200ms。
我读到某处消息量很大时,它的性能很好,但是对于每秒发送数百条消息的消息量较少,Pub / Sub可能会产生高延迟。
在前面的问题中,主题也不清楚。 what's google cloud pub/sub latency(2016年)
是否存在有关发布/订阅延迟以及与邮件数量的关系的已定义指标?
答案 0 :(得分:1)
Cloud Pub / Sub was designed考虑到大量消息,因此,如果消息吞吐量太低,则有时可能会遇到困难。这与Pub / Sub如何平衡侦听器之间的拉取请求有关。
回到您的问题,没有关于此行为的定义指标,也没有最小延迟或可以称其为“高负载”的大量消息。实际上,它取决于诸如工人数量,批处理大小,每条消息的处理时间等因素。
我发现了另外一个StackOverflow answer,它更多地讨论了Pub / Sub的有效用例(每秒数千个消息),以及为什么建议对Cloud Pub / Sub使用高负载。
编辑:
对此主题进行扩展,在Pub / Sub实现中添加一个异步层可以帮助提高其性能,包括在消息量较小的情况下的延迟。当使用Pub / Sub时,Spotify意识到了这一需求,并创建了their own Async Cloud Pub/Sub Client。他们现在建议使用Google's java client,但是值得将此信息考虑在内