The message.max.bytes
parameter indicates the maximum message size that the broker can accept. If this value is set too high, it can lead to excessively large messages that consume too much memory.
Kafka is written in Java, so in order to ensure the performance and stability of Kafka, it is important to pay attention to the GC (Garbage Collection) performance of the JVM. Properly configuring JVM parameters can optimize memory usage. It is recommended to use the following JVM parameters to reduce memory fragmentation and GC pressure.
Each consumer occupies a certain amount of memory; therefore, limiting the number of consumers can reduce memory usage. By using consumer groups, horizontal scaling of consumers can be achieved, thereby alleviating the memory pressure on individual consumers.
A Kafka cluster can contain multiple topics, each of which may have multiple partitions. Each partition will consume a certain amount of memory, so a reasonable configuration of topics and partitions can avoid memory waste. Please determine the number of topics and partitions based on actual business requirements and cluster size.
Reduce the number of partitions and replicas on a single broker to free up more memory.