You create a topic named stream-logs with: A replication factor of 3 Four partitions Messages that are plain logs without a keyHow will messages be distributed across partitions?
Correct Answer: B
If a message key is not provided, Kafka's default partitioner uses round-robin distribution across available partitions. From Kafka Producer Design: "If no key is provided, the default partitioner distributes messages round-robin to available partitions." A is incorrect - not all go to partition 0. C is invalid - Kafka doesn't group messages into one segment without a key. D is false - ordering is not preserved across partitions without a key. Reference: Kafka Producer Partitioner Behavior
CCDAK Exam Question 37
(You are experiencing low throughput from a Java producer. Kafka producer metrics show a low I/O thread ratio and low I/O thread wait ratio. What is the most likely cause of the slow producer performance?)
Correct Answer: C
According to the official Apache Kafka producer metrics documentation, the I/O thread ratio and I/O thread wait ratio indicate how busy the producer's network I/O thread is and how much time it spends waiting. When both metrics are low, it means the I/O thread is underutilized and not blocked on network operations. This strongly suggests that the bottleneck is not network-related. If there were network latency or a bad data link (Option B), the I/O thread wait ratio would be high. Similarly, large batches (Option A) or compression (Option D) generally increase throughput and would result in higher I/O utilization. An expensive or blocking callback function (for example, heavy logic in onCompletion()) executes in the producer's sender thread context. Kafka documentation explicitly warns that slow callbacks can throttle producer throughput because they delay the processing of acknowledgements and subsequent sends. Therefore, the most likely and documented cause of low producer throughput with low I/O utilization is expensive callback logic in the producer code.
CCDAK Exam Question 38
(Which configuration is valid for deploying a JDBC Source Connector to read all rows from the orders table and write them to the dbl-orders topic?)
Correct Answer: D
According to the official Apache Kafka Connect and Confluent JDBC Source Connector documentation, the correct connector class for a JDBC source connector is io.confluent.connect.jdbc.JdbcSourceConnector. This connector is used to read data from relational databases and publish each table as a Kafka topic. To read all rows from a specific table, the configuration must include table.whitelist (or table.include.list in newer versions) with the table name, and a topic.prefix to determine the Kafka topic name. In this case, using topic.prefix=dbl- with table.whitelist=orders results in records being written to the dbl-orders topic, which matches the requirement. Options A, B, and C are invalid because they reference a non-existent connector class (DdbcSourceConnector), contain unsupported properties such as topic.whitelist for a source connector, or include malformed/incorrect JDBC parameters. Additionally, blacklisting tables does not ensure that only the orders table is read. Therefore, option D is the only configuration that is syntactically correct, uses the proper connector class, and aligns with the official Kafka Connect JDBC Source Connector documentation.