पाठ 2 / 25

Topics, Partitions, Offsets और Records

समझें कि topic क्रमबद्ध partitions में कैसे बँटा है और offsets records को कैसे पहचानते हैं।

Log की बनावट

Record (message) में वैकल्पिक key, एक value, timestamp और वैकल्पिक headers होते हैं। Topic partitions में बँटा है; हर partition records का क्रमबद्ध, केवल-जोड़ने वाला क्रम है, और हर record को अपने partition में क्रमिक संख्या मिलती है जिसे offset कहते हैं। क्रम की गारंटी सिर्फ़ एक partition के भीतर है, पूरे topic में नहीं। Partitions समानांतरता की इकाई हैं: ज़्यादा partitions का मतलब ज़्यादा consumers समानांतर पढ़ सकते हैं और डेटा brokers में फैलता है।

Log का चित्र

हर partition अंत में बढ़ता है। Offsets कभी नहीं बदलते, और consumer याद रखता है कि वह अगला कौन-सा offset पढ़ेगा।

topic "orders" (3 partitions)

partition 0:  [0][1][2][3][4]  -> next write goes to offset 5
partition 1:  [0][1][2]
partition 2:  [0][1][2][3]

consumer A reads partition 0 at offset 3; consumer B reads partition 1 at offset 1
Ordering is guaranteed inside each partition only.

Offsets प्रति partition होते हैं

Partition 0 का offset 7 और partition 1 का offset 7 अलग records हैं। स्थिति को हमेशा जोड़ी (partition, offset) के रूप में सोचें।

त्वरित जाँच: Record का क्रम कहाँ guaranteed है?

  • एक partition के भीतर
  • Topic के सभी partitions में
  • सभी topics में
  • कहीं नहीं
Answer

एक partition के भीतर — Kafka प्रति partition क्रम रखता है; partitions के बीच क्रम guaranteed नहीं।