nats-server
nats-server copied to clipboard
What are waiting pulls?
My goal is to diagnose why a pull-based consumer isn't receiving messages. All I see is "waiting pulls" incremented each time I next
the consumer. On a side-note, please document what "waiting pulls" means.
First I publish a message:
nats pub "a.b.test" "{}"
REDACTED Published 2 bytes to "a.b.test"
Second I request next
from STREAM WORKER but get back nothing:
> nats consumer next STREAM WORKER
nats.exe: error: no message received: nats: timeout
> nats consumer info STREAM WORKER
Information for Consumer STREAM > WORKER created REDACTED
Configuration:
Durable Name: WORKER
Pull Mode: true
Filter Subject: a.b.>
Deliver Policy: New
Ack Policy: Explicit
Replay Policy: Instant
Max Ack Pending: 20,000
Max Waiting Pulls: 512
State:
Last Delivered Message: Consumer sequence: 142 Stream sequence: 869
Acknowledgment floor: Consumer sequence: 142 Stream sequence: 869
Outstanding Acks: 0 out of maximum 20,000
Redelivered Messages: 0
Unprocessed Messages: 0
Waiting Pulls: 70 of maximum 512
Interesting. I have 70 waiting pulls. What does this mean? Let's do another next
:
> nats consumer next STREAM WORKER
nats.exe: error: no message received: nats: timeout
> nats consumer info STREAM WORKER
Information for Consumer STREAM > WORKER created REDACTED
Configuration:
Durable Name: WORKER
Pull Mode: true
Filter Subject: a.b.>
Ack Policy: Explicit
Replay Policy: Instant
Max Ack Pending: 20,000
Max Waiting Pulls: 512
State:
Last Delivered Message: Consumer sequence: 142 Stream sequence: 869
Acknowledgment floor: Consumer sequence: 142 Stream sequence: 869
Outstanding Acks: 0 out of maximum 20,000
Redelivered Messages: 0
Unprocessed Messages: 0
Waiting Pulls: 72 of maximum 512
I only performed one next
so why does it show 2 "waiting pulls"?