0
0
Kafkadevops~20 mins

Memory and buffer configuration in Kafka - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Kafka Memory Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output of the producer buffer size setting?
Consider a Kafka producer configured with buffer.memory=33554432 (32 MB). What is the maximum amount of memory the producer can use to buffer records waiting to be sent?
Kafka
Properties props = new Properties();
props.put("buffer.memory", "33554432");
KafkaProducer<String, String> producer = new KafkaProducer<>(props);
System.out.println(producer.metrics().get("bufferpool-total-bytes").metricValue());
A0
B33554432
C67108864
D1048576
Attempts:
2 left
💡 Hint
The buffer.memory property sets the total bytes of memory the producer can use to buffer records.
Predict Output
intermediate
2:00remaining
What happens if fetch.min.bytes is set too high?
In a Kafka consumer configuration, if fetch.min.bytes is set to 1048576 (1 MB), what is the expected behavior when the broker has less data available?
Kafka
Properties props = new Properties();
props.put("fetch.min.bytes", "1048576");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
System.out.println(records.count());
AConsumer waits until 1 MB of data is available before returning any records.
BConsumer returns zero records and closes the connection.
CConsumer throws an exception if less than 1 MB is available.
DConsumer immediately returns any available data regardless of size.
Attempts:
2 left
💡 Hint
fetch.min.bytes controls the minimum amount of data the broker returns to the consumer.
🔧 Debug
advanced
2:00remaining
Why does the producer throw a BufferExhaustedException?
A Kafka producer configured with buffer.memory=16384 (16 KB) and batch.size=32768 (32 KB) throws a BufferExhaustedException during high load. Why?
Kafka
Properties props = new Properties();
props.put("buffer.memory", "16384");
props.put("batch.size", "32768");
KafkaProducer<String, String> producer = new KafkaProducer<>(props);
// High volume sending loop
for (int i = 0; i < 100000; i++) {
    producer.send(new ProducerRecord<>("topic", "key", "value"));
}
AThe producer is missing the linger.ms setting, causing immediate sends.
Bbatch.size is smaller than buffer.memory, causing buffer overflow.
Cbuffer.memory is smaller than batch.size, so the producer cannot allocate enough buffer for a batch.
DThe producer's max.request.size is too large.
Attempts:
2 left
💡 Hint
buffer.memory must be at least as large as batch.size to hold a batch in memory.
📝 Syntax
advanced
2:00remaining
Identify the syntax error in this Kafka consumer buffer configuration
Which option contains a syntax error in setting the consumer's fetch.max.bytes property in Java?
Kafka
Properties props = new Properties();
A;)"00882425" ,"setyb.xam.hctef"(tup.sporp
Bprops.put("fetch.max.bytes", 52428800);
Cprops.put("fetch.max.bytes", "52428800");
Dprops.put(fetch.max.bytes, "52428800");
Attempts:
2 left
💡 Hint
Property keys must be strings in quotes.
🚀 Application
expert
3:00remaining
Calculate total memory usage for a Kafka producer with multiple buffers
A Kafka producer is configured with buffer.memory=67108864 (64 MB), batch.size=16384 (16 KB), and max.in.flight.requests.per.connection=5. What is the minimum total memory the producer needs to handle 5 in-flight batches without blocking?
A81920 bytes plus overhead, but less than 67108864 bytes
B67108864 bytes
C81920 bytes
DMore than 67108864 bytes
Attempts:
2 left
💡 Hint
Total memory must cover all in-flight batches but cannot exceed buffer.memory.