lhotari commented on PR #24610: URL: https://github.com/apache/pulsar/pull/24610#issuecomment-3160750677
> In my understanding, the fundamental design principle of `ZeroQueueConsumer` (receiverQueueSize=0) is to be a **strictly non-buffering consumer** that: > > * Operates in pure request-response mode: > > * Each receive() call should trigger exactly one network request to the broker > * No messages should be retained client-side between receive() calls I don't think that this is a correct assumption. In Pulsar, the receive method returns individual messages in a batch. When the broker sends a batch message to the client, it should be buffered on the client side, also with ZeroQueueConsumer. It's very much possible that you have faced bugs in the ZeroQueueConsumerImpl implementation. When checking at the implementation, it doesn't seem to make a distinction between batch messages. In Pulsar code, it's bit of a mess that in some cases the permits are about batch messages and some times there are about individual messages. I have created an issue about that in https://github.com/apache/pulsar/issues/23263 . It's possible that the information in the issue isn't accurate. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
