...
The proposed change cannot provide an definite guarantee against OOM in all scenarios - for instance, it will still manifest if the maximum size is set to 100 MB and the JVM is under memory pressure and have less than 100 MB of allocatable memory.
Illegitimate message rejection
Even worse: what if the property is incorrectly configured and legitimate messages not reaching the client?
Potential confusing
- The name
max.response.size
intends to mirror the existingmax.request.size
from the producer's configuration properties. However,max.request.size
intends to check the size of producer records as provided by a client; whilemax.response.size
is to check the size directly decoded from the network according to Kafka's binary protocol. - On the broker, the property
socket.request.max.bytes
is used to validate the size of messages received by the server. The new property serves the same purpose, which introduces duplicated semantic, even if one property is characterised with the keyword "request" and the other with "response", in both cases reflecting the perspective adopted from either a client or a server.
...