message-queue - Google Pub/Sub 性能(低负载下的延迟)?

标签 message-queue latency google-cloud-pubsub

我们即将选择 Google Cloud Pub/Sub 作为我们的消息总线。一些消息需要在低延迟持续时间(例如小于 100-200 毫秒)内进行调度。
我在某处读到,在大量消息中,它表现良好,但对于每秒数百条消息等较少数量的消息,Pub/Sub 可能会产生高延迟。
在上一个问题中,主题也不清楚。 what's google cloud pub/sub latency从 2016 年开始。
是否有任何关于 Pub/Sub 延迟和与消息量关系的定义指标?

最佳答案

云发布/订阅 was designed考虑到大量消息,因此如果消息吞吐量太低,它有时会挣扎。这与 Pub/Sub 如何平衡监听器之间的拉取请求有关。

回到你的问题,没有关于这种行为的定义指标,也没有最小的延迟或你可以说它被认为是“高负载”的神奇数量的消息。实际上,它取决于诸如 worker 数量、批次大小、每条消息的处理时间等因素。

我找到了另一个 StackOverflow answer这更多地讨论了 Pub/Sub 的有效用例(每秒数千条消息)以及为什么建议 Cloud Pub/Sub 使用高负载。

编辑:

扩展此主题,向 Pub/Sub 实现添加异步层有助于提高其性能,包括低消息量场景中的延迟。 Spotify 在与 Pub/Sub 合作时意识到了这一需求并创建了 their own Async Cloud Pub/Sub Client .他们现在推荐使用 Google's java client ,但值得考虑这些信息

关于message-queue - Google Pub/Sub 性能(低负载下的延迟)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53197855/

相关文章:

java - Google Pub/Sub 模拟器 - 使用 Java 的 HTTP.POST 发布消息会抛出 400 错误请求

google-cloud-platform - Google PubSub 返回 google.gax.errors.GaxError : GaxError RPC failed caused by . .. StatusCode.UNAVAILABLE

google-bigquery - Google ML Engine - 由于异常 <HttpError 403>,无法记录客观指标

queue - RabbitMQ AMQP队列设计

go - Go Prometheus客户端与Python Prometheus客户端获得不同的延迟

linux - 为什么没有创建消息队列

java - 为什么整数的java除法比黑客的喜悦实现更快

ios - 如何在 iOS 应用程序中检查慢速/低网络

java - 许多生产者和一个消费者同时轮询所有消息

RabbitMQ 支持 LIFO 或基于时间的优先级队列