Seeing "outbound buffer limit exceeded" errors from Nats streaming. #166
Replies: 3 comments 3 replies
-
|
@fowlerp-qlik Are you referring to "STAN", the old nats streaming or are you referring to JetStream? |
Beta Was this translation helpful? Give feedback.
-
|
@fowlerp-qlik Transferred to stan.java discussions. @kozlovic Any idea on this? |
Beta Was this translation helpful? Give feedback.
-
|
NATS Streaming server does not have the ability to detect duplicate published messages like JetStream does. At the time, the decision was made to make the libraries set the reconnect buffer to very low size (or disabled if possible) to make sure that no published message while disconnected would be accepted. Why? Suppose the following sequences if there is a reconnect buffer.
That being said, what is described above could happen without a disconnect. It is always possible that a client would get a timeout because of a small value and server being overloaded - but still had received the message. But the duplicate-on-reconnect situation was something that we wanted to eliminate. Of course, if the user provides their own NATS connection, then the STAN library does not have control of that. And to answer the question about "messages are being lost by nats streaming": not by NATS Streaming, but by the application if the Publish() error is ignored and not retried later. With this error, which is different from a timeout, there is certainty that the message did not reach the server at all. With timeout, it is difficult to know. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi
We are running nats and nats streaming as Kubernetes micro services. When a new version of these are deployed we are seeing 1000s of "outbound buffer limit exceeded" messaging being reported by one of the nats streaming pods (not always the the same one).
My question is. Does this error mean that messages are being lost by nats streaming?
Beta Was this translation helpful? Give feedback.
All reactions