Nee*_*raj 2 google-cloud-pubsub
nack() 有以下行为
nack() """拒绝确认给定的消息。这将导致消息被重新传递到订阅。
现在在流拉取中,我正在拉动出租车流数据,测试以下行为。
使用 nack() 流拉继续接收之前 nacked() 的消息
nack() 或 ack() Streaming 都不会读取初始消息串并等待很长时间。我等了将近15分钟,但没有收到任何新消息。
现在我的问题是,在流式拉取中,当消息既不是 ack() 也不是 nack() 时,处理这些消息的预期行为和正确方法是什么?假设我想每分钟计算积压消息作为处理要求?
Kam*_*osn 10
当消息既没有被确认也没有被确认时,Cloud Pub/Sub 客户端库会在maxAckExtensionPeriod内维持消息的租约。一旦该时间段过去,消息将被确认并重新传送。当您既没有 ack 也没有 nack 时,您没有收到更多消息的原因可能是因为您遇到了 flowControlSettings 中指定的值这限制了未完成且尚未 ack 或 nack 的消息数量。
它通常是既不 ack 也不 nack 消息的反模式。如果成功处理消息,则应该确认它。如果您无法处理它(比如发生某种类型的瞬态异常),那么您应该取消它。尝试在不执行这些操作之一的情况下接收消息实际上并不是计算积压消息数量的有效方法。
| 归档时间: |
|
| 查看次数: |
6696 次 |
| 最近记录: |