در جلسه چهارم، به عمق دنیای ذخیرهسازی دادهها در کافکا میرویم. در این بخش میآموزیم که دادهها چگونه در سطح فایلهای فیزیکی نگهداری میشوند، حالتهای مختلف تولیدکننده (عادی، idempotent و تراکنشی) چه تأثیری بر ساختار پیامها دارند، و چگونه سیاستهای نگهداری و پاکسازی بر طول عمر دادهها اثر میگذارند.
در پایان جلسه، شرکتکنندگان با ابزارهایی مانند DumpLogSegments و kcat بهصورت عملی محتوای فایلهای لاگ، فرآیند فشردهسازی و حذف دادهها را بررسی خواهند کرد.
در این جلسه سرفصلهای زیر را به صورت عملی با هم مرور خواهیم کرد.
.log → دادههای واقعی پیامها.index → نگاشت آفستها به موقعیت بایتها.timeindex → نگاشت تایماستمپها برای جستوجوی زمانیDumpLogSegments برای مشاهده محتوای باینری فایلهای لاگ.producerId، producerEpoch و sequence برای جلوگیری از تکرار پیام.transactional.id برای کنترل اتمی تولید پیامها.DumpLogSegments.log.segment.bytes (اندازه سگمنتها)log.roll.ms (زمان چرخش خودکار سگمنتها)log.retention.ms) یا حجم (log.retention.bytes).retention.bytes (کل پارتیشن) و segment.bytes (هر سگمنت).delete → حذف سگمنتهای قدیمیcompact → نگهداری آخرین پیام هر کلیدdelete,compact → ترکیب هر دو حالتkafka-configs.sh.log.retention.check.interval.ms).LogCleaner.value=null برای حذف منطقی رکوردها در تاپیکهای فشردهشده.log.cleaner.delete.retention.ms) تا مصرفکنندگان آنها را پردازش کنند.__consumer_offsetsgroup.id، topic، partitionoffset، metadata، timestampcleanup.policy=compact برای حفظ آخرین وضعیت هر گروه.kcat و تطبیق با خروجی kafka-consumer-groups.sh.__consumer_offsets هستهی مدیریت وضعیت مصرفکنندگان در کافکاست.retention و cleanup.policy مستقیماً بر طول عمر و حجم دادهها اثرگذارند.