Bird
Raised Fist0
Kafkadevops~10 mins

First message (produce and consume) in Kafka - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to produce a message to the Kafka topic.

Kafka
producer.send('[1]', b'Hello Kafka!')
Drag options to blanks, or click blank then click option'
Amessages
Bmy_topic
Ckafka_topic
Dtopic1
Attempts:
3 left
💡 Hint
Common Mistakes
Using a topic name that is not defined or different from the example.
Forgetting to put the topic name as a string.
2fill in blank
medium

Complete the code to consume a message from the Kafka topic.

Kafka
for message in consumer.[1]():
    print(message.value.decode('utf-8'))
Drag options to blanks, or click blank then click option'
Aconsume
Bpoll
Csubscribe
Dpoll_messages
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'subscribe' instead of 'consume' to get messages.
Using a method that does not exist on the consumer object.
3fill in blank
hard

Fix the error in the code to produce a message with the correct key.

Kafka
producer.send('topic1', key=[1], value=b'Hello')
Drag options to blanks, or click blank then click option'
A'key1'
Bb'key1'
Ckey1
D123
Attempts:
3 left
💡 Hint
Common Mistakes
Using a string without b prefix for the key.
Using a variable name without quotes or bytes.
4fill in blank
hard

Fill both blanks to create a dictionary comprehension that maps message keys to values.

Kafka
messages = {msg.[1]: msg.[2] for msg in consumer.consume()}
Drag options to blanks, or click blank then click option'
Akey
Bvalue
Ctopic
Dpartition
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'topic' or 'partition' instead of 'key' or 'value'.
Mixing up key and value positions.
5fill in blank
hard

Fill all three blanks to produce and flush a message to the topic with a key and value.

Kafka
producer.send('[1]', key=[2], value=[3])
producer.flush()
Drag options to blanks, or click blank then click option'
Atopic1
Bb'key123'
Cb'Hello Kafka!'
Db'value'
Attempts:
3 left
💡 Hint
Common Mistakes
Using strings instead of bytes for key or value.
Forgetting to flush after sending.

Practice

(1/5)
1. What is the main purpose of producing a message in Kafka?
easy
A. To send data to a Kafka topic
B. To read data from a Kafka topic
C. To delete messages from a Kafka topic
D. To create a new Kafka topic

Solution

  1. Step 1: Understand Kafka producing

    Producing means sending messages to a Kafka topic as bytes.
  2. Step 2: Differentiate producing from consuming

    Consuming reads messages, but producing sends them.
  3. Final Answer:

    To send data to a Kafka topic -> Option A
  4. Quick Check:

    Producing = Sending messages [OK]
Hint: Producing means sending messages to Kafka topics [OK]
Common Mistakes:
  • Confusing producing with consuming
  • Thinking producing deletes messages
  • Assuming producing creates topics
2. Which of the following is the correct way to create a Kafka producer in Python using the kafka-python library?
easy
A. producer = KafkaConsumer(topic='mytopic')
B. producer = KafkaConsumer(bootstrap_servers='localhost:9092')
C. producer = KafkaProducer(topic='mytopic')
D. producer = KafkaProducer(bootstrap_servers='localhost:9092')

Solution

  1. Step 1: Identify Kafka producer creation syntax

    KafkaProducer is created with bootstrap_servers parameter specifying Kafka server address.
  2. Step 2: Eliminate consumer and wrong parameters

    KafkaConsumer is for consuming, not producing. Topic is not a parameter for producer creation.
  3. Final Answer:

    producer = KafkaProducer(bootstrap_servers='localhost:9092') -> Option D
  4. Quick Check:

    Producer uses KafkaProducer with bootstrap_servers [OK]
Hint: Producer uses KafkaProducer with bootstrap_servers [OK]
Common Mistakes:
  • Using KafkaConsumer instead of KafkaProducer
  • Passing topic during producer creation
  • Missing bootstrap_servers parameter
3. Consider this Python code snippet using kafka-python:
from kafka import KafkaProducer, KafkaConsumer

producer = KafkaProducer(bootstrap_servers='localhost:9092')
producer.send('test-topic', b'Hello Kafka')
producer.flush()

consumer = KafkaConsumer('test-topic', bootstrap_servers='localhost:9092', auto_offset_reset='earliest', consumer_timeout_ms=1000)
for msg in consumer:
    print(msg.value.decode())
What will be the output when this code runs?
medium
A. Error: topic not found
B. Hello Kafka
C. No output, consumer times out
D. b'Hello Kafka'

Solution

  1. Step 1: Analyze producer sending message

    Producer sends bytes message b'Hello Kafka' to 'test-topic' and flushes to ensure delivery.
  2. Step 2: Analyze consumer reading message

    Consumer reads from 'test-topic' from earliest offset and decodes bytes to string before printing.
  3. Final Answer:

    Hello Kafka -> Option B
  4. Quick Check:

    Consumer prints decoded message string [OK]
Hint: Consumer decodes bytes to string before printing [OK]
Common Mistakes:
  • Expecting raw bytes output
  • Assuming consumer misses message due to timeout
  • Thinking topic does not exist
4. You wrote this code to consume messages but it raises an error:
consumer = KafkaConsumer('my-topic')
for message in consumer:
    print(message.value.decode())
What is the most likely cause of the error?
medium
A. Using decode() on message.value which is already a string
B. Not calling consumer.poll() before iterating
C. Missing bootstrap_servers parameter when creating KafkaConsumer
D. Topic name should be a list, not a string

Solution

  1. Step 1: Check KafkaConsumer creation requirements

    KafkaConsumer requires bootstrap_servers parameter to connect to Kafka cluster.
  2. Step 2: Validate other options

    decode() is needed because message.value is bytes; consumer.poll() is optional; topic can be string or list.
  3. Final Answer:

    Missing bootstrap_servers parameter when creating KafkaConsumer -> Option C
  4. Quick Check:

    KafkaConsumer needs bootstrap_servers [OK]
Hint: Always specify bootstrap_servers when creating KafkaConsumer [OK]
Common Mistakes:
  • Omitting bootstrap_servers parameter
  • Assuming message.value is string without decoding
  • Thinking poll() is mandatory before iteration
5. You want to produce and consume the first message in a Kafka topic named 'orders'. Which sequence of steps correctly achieves this in Python using kafka-python?
hard
A. Create KafkaProducer with bootstrap_servers, send message as bytes, flush; create KafkaConsumer with bootstrap_servers and auto_offset_reset='earliest', then read and decode messages
B. Create KafkaConsumer first, then KafkaProducer; send message as string; consumer reads without decoding
C. Create KafkaProducer without bootstrap_servers, send string message; create KafkaConsumer with bootstrap_servers, read messages as bytes
D. Create KafkaProducer with topic parameter, send message; create KafkaConsumer without bootstrap_servers, read and decode messages

Solution

  1. Step 1: Properly create KafkaProducer and send message

    KafkaProducer must be created with bootstrap_servers; messages sent as bytes and flushed to ensure delivery.
  2. Step 2: Properly create KafkaConsumer and read messages

    KafkaConsumer needs bootstrap_servers and auto_offset_reset='earliest' to read from the first message; decode bytes to string when reading.
  3. Final Answer:

    Create KafkaProducer with bootstrap_servers, send message as bytes, flush; create KafkaConsumer with bootstrap_servers and auto_offset_reset='earliest', then read and decode messages -> Option A
  4. Quick Check:

    Correct producer and consumer setup with bytes and decoding [OK]
Hint: Producer sends bytes and flushes; consumer reads earliest and decodes [OK]
Common Mistakes:
  • Creating producer or consumer without bootstrap_servers
  • Sending string instead of bytes
  • Not setting auto_offset_reset to 'earliest'
  • Not decoding message bytes before printing
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard