Replication factor controls how many copies of data Kafka keeps across brokers and datacenters.
Step 2: Match replication.factor to multi-datacenter replication
Setting replication.factor > 1 ensures data is copied to multiple brokers, enabling multi-datacenter setups.
Final Answer:
replication.factor -> Option B
Quick Check:
Replication setting = replication.factor [OK]
Hint: Replication needs replication.factor set > 1 [OK]
Common Mistakes:
Choosing unrelated config options
Confusing offset or polling settings with replication
Ignoring replication factor importance
3. Given this simplified Kafka setup code snippet, what happens if datacenter1 goes down?
clusters = {"datacenter1": ["broker1", "broker2"], "datacenter2": ["broker3", "broker4"]}
replication_factor = 2
# Messages are replicated across datacenters
messages = ["msg1", "msg2"]
# Simulate datacenter1 goes down
del clusters["datacenter1"]
# Consumer reads from datacenter2 if datacenter1 fails
consumer_datacenter = "datacenter2" if "datacenter1" not in clusters else "datacenter1"
print(f"Consumer reads from {consumer_datacenter}")
medium
A. Consumer reads from datacenter2
B. Consumer reads from datacenter1
C. Consumer reads from both datacenters simultaneously
D. Consumer fails to read any data
Solution
Step 1: Understand the condition for consumer_datacenter
The code sets consumer_datacenter to datacenter2 if datacenter1 is missing from clusters.
Step 2: Analyze what happens if datacenter1 goes down
If datacenter1 is removed or down, it won't be in clusters, so consumer_datacenter becomes datacenter2.
Final Answer:
Consumer reads from datacenter2 -> Option A
Quick Check:
Failover to datacenter2 = Consumer reads datacenter2 [OK]
Hint: Check condition for datacenter presence in clusters [OK]
Common Mistakes:
Assuming consumer always reads datacenter1
Thinking consumer reads both datacenters at once
Ignoring the if condition logic
4. This Kafka multi-datacenter replication code has a bug. What is it?
def replicate_message(message, datacenters):
for dc in datacenters:
if dc == "primary":
continue
datacenters[dc].append(message)
clusters = {"primary": [], "backup": []}
replicate_message("hello", clusters)
print(clusters)
medium
A. It causes an infinite loop
B. It tries to append to a string instead of a list
C. It modifies the dictionary keys instead of values
D. It skips replicating to the primary datacenter
Solution
Step 1: Review the replicate_message function logic
The function skips the datacenter named "primary" and only appends message to others.
Step 2: Understand the impact of skipping primary
Skipping primary means the original datacenter does not get the message, which is a bug for replication.
Final Answer:
It skips replicating to the primary datacenter -> Option D
Quick Check:
Skipping primary = Bug in replication [OK]
Hint: Check which datacenters get the message appended [OK]
Common Mistakes:
Thinking it modifies keys instead of values
Assuming infinite loop due to for loop
Confusing list and string types
5. You want to design a Kafka system that stays available worldwide even if one datacenter fails. Which approach best ensures this?
hard
A. Store all data only in one datacenter and back it up manually
B. Use a single datacenter with very powerful brokers
C. Replicate data asynchronously between multiple datacenters with automatic failover
D. Disable replication to reduce network traffic
Solution
Step 1: Understand the goal of worldwide availability
Worldwide availability means users anywhere can access Kafka even if one datacenter fails.
Step 2: Evaluate options for multi-datacenter setup
Replicating data asynchronously between datacenters with automatic failover ensures data is copied and clients switch to healthy datacenters.
Final Answer:
Replicate data asynchronously between multiple datacenters with automatic failover -> Option C
Quick Check:
Multi-datacenter replication + failover = High availability [OK]
Hint: Choose replication plus failover for availability [OK]
Common Mistakes:
Thinking one powerful datacenter is enough
Ignoring automatic failover importance
Disabling replication reduces availability
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.