Consider this Kafka producer code snippet in Python using confluent_kafka. What will it print?
from confluent_kafka import Producer conf = {'bootstrap.servers': 'localhost:9092'} producer = Producer(conf) producer.produce('test-topic', key='key1', value='Hello Kafka!') producer.flush() print('Message sent')
The produce method queues the message, and flush sends it. The print statement runs after sending.
The code prints 'Message sent' because the print statement executes after the message is sent. The message itself is sent to Kafka but not printed.
Given this Kafka consumer code in Python, what will it print after receiving one message?
from confluent_kafka import Consumer conf = { 'bootstrap.servers': 'localhost:9092', 'group.id': 'mygroup', 'auto.offset.reset': 'earliest' } consumer = Consumer(conf) consumer.subscribe(['test-topic']) msg = consumer.poll(1.0) if msg is None: print('No message received') elif msg.error(): print(f'Error: {msg.error()}') else: print(f'Received: {msg.value().decode("utf-8")}') consumer.close()
The consumer reads the message value, decoding bytes to string.
The consumer prints the message value 'Hello Kafka!' because it consumes the message sent to 'test-topic'.
This Kafka consumer code raises an exception. What is the cause?
from confluent_kafka import Consumer conf = { 'bootstrap.servers': 'localhost:9092', 'group.id': 'mygroup' } consumer = Consumer(conf) consumer.subscribe(['test-topic']) msg = consumer.poll(1.0) print(msg.value().decode('utf-8')) consumer.close()
Check what happens if poll returns None.
If no message is received, poll returns None. Calling msg.value() on None causes an AttributeError.
Which of these Python code snippets correctly produces a Kafka message with key 'user1' and value 'data'?
Remember that key and value must be strings or bytes, and keyword arguments are required.
Option A uses correct keyword arguments with string literals. Option A passes positional arguments incorrectly. Option A uses an invalid keyword argument 'topic'. Option A uses undefined variables.
Given this Kafka consumer code, how many messages will it consume before stopping?
from confluent_kafka import Consumer conf = { 'bootstrap.servers': 'localhost:9092', 'group.id': 'mygroup', 'auto.offset.reset': 'earliest' } consumer = Consumer(conf) consumer.subscribe(['test-topic']) count = 0 while True: msg = consumer.poll(0.5) if msg is None: break if msg.error(): break count += 1 consumer.close() print(count)
The loop stops when poll returns None, which means no more messages are available.
The code counts all available messages in 'test-topic' partitions at the time of consumption. It stops when no more messages are returned.