购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

推送与轮询

当生产者向队列或事件流发送新消息时,消费者可能以不同的方式接收新消息。向消费者发送消息的两种机制是推送(Push)和轮询(Poll)。

在推送模式中,事件代理通过预先定义的配置将消息推送给消费者。例如,代理可能在每个时间段将固定数量的消息发送给消费者,或者在将消息推送给消费者之前,代理在队列中缓存一定数量的消息。如今大部分消息系统都使用推送消息的机制,原因在于代理总是希望能尽快地把消息投递出去。

在事件系统中,队列中的消息也是有价值的,但是消息系统的最终目的是处理收到的消息。通过尽可能快地把消息推送给需要的消费者,事件代理对该消息承担的责任也能尽快履行。但是,如上文“故障类型”小节所述,当事件代理尝试向消费者推送消息时,该消费者可能处于不可用的状态。发生这种故障类型时,事件代理必须重新尝试投递,或在队列模式中将消息投递给另一个消费者。

与推送模式相对的是轮询模式。轮询模式需要消费者向事件代理请求新消息。消费者可能会根据提前配置好的周期请求新消息,又或是根据下游事件的需求请求新消息。这种模式的优点是,消费者在请求新消息时已经准备好接收它们,缺点是消费者可能无法及时收到消息或者根本不会收到消息。 uTU9Ywl+eLTZGo6qz0OQz9jYfayaVHFRhj/UPnqv2oJkHb8ui0lE6tV44ED7CjWp

点击中间区域
呼出菜单
上一章
目录
下一章
×