【发布时间】:2017-01-24 06:41:02
【问题描述】:
Google PubSub 是否适合小容量(10 条消息/秒)但任务关键型消息传递,保证在任何固定时间段内及时交付每条消息?
或者,它是否更适合高吞吐量,其中个别消息可能偶尔丢失或无限期延迟?
编辑:稍微改述一下这个问题:PubSub 中的任何特定消息,无论产生的消息量如何,都可以无限期延迟,这是真的吗?
【问题讨论】:
Google PubSub 是否适合小容量(10 条消息/秒)但任务关键型消息传递,保证在任何固定时间段内及时交付每条消息?
或者,它是否更适合高吞吐量,其中个别消息可能偶尔丢失或无限期延迟?
编辑:稍微改述一下这个问题:PubSub 中的任何特定消息,无论产生的消息量如何,都可以无限期延迟,这是真的吗?
【问题讨论】:
Google Cloud Pub/Sub 保证所有消息的传递,无论是低吞吐量还是高吞吐量,因此不必担心消息丢失。
从发布者到订阅者的消息传递延迟取决于许多不同的因素。特别是,订阅者能够处理消息和请求更多消息的速率至关重要。对于拉取订阅者,这意味着总是有几个未完成的拉取请求到服务器。对于推送订阅者,他们应该尽快返回成功的 HTTP 响应代码。您可以阅读有关difference between push and pull subscribers 的更多信息。
Google Cloud Pub/Sub 会尽量减少延迟时间,但无法保证。根据经验,Cloud Pub/Sub 在第 99 个百分位处始终在不超过几秒钟的时间内交付消息。请注意,如果您的发布者或订阅者未在 Google Cloud Platform 上运行,那么您的服务器与 Google 服务器之间的网络延迟也可能是一个因素。
【讨论】: