בסעיף הקודם, לקחנו הקדמה קצרה על אפאצ'י קפקא, מערכת ההודעות, כמו גם תהליך הסטרימינג. כאן, נדון במושגי היסוד ובתפקידו של קפקא.
נושאים
בדרך כלל, נושא מתייחס לכותרת מסוימת או לשם שניתן לכמה רעיונות ספציפיים הקשורים זה לזה. בקפקא, המילה נושא מתייחסת לקטגוריה או לשם נפוץ המשמשים לאחסון ופרסום של זרם נתונים מסוים. בעיקרון, נושאים בקפקא דומים לטבלאות במסד הנתונים, אך אינם מכילים את כל האילוצים. בקפקא, אנחנו יכולים ליצור n מספר נושאים כמו שאנחנו רוצים. הוא מזוהה בשמו, שתלוי בבחירת המשתמש. מפיק מפרסם נתונים לנושאים, וצרכן קורא את הנתונים מהנושא על ידי הרשמה אליו.
מחיצות
נושא מחולק למספר חלקים אשר ידועים בתור המחיצות של הנושא. מחיצות אלו מופרדות בסדר. תוכן הנתונים מאוחסן במחיצות בתוך הנושא. לכן, בזמן יצירת נושא, עלינו לציין את מספר המחיצות (המספר הוא שרירותי וניתן לשנות אותו מאוחר יותר). כל הודעה מאוחסנת במחיצות עם מזהה אינקרמנטלי המכונה ערך ה-Offset שלה. הסדר של ה ערך קיזוז מובטחת בתוך המחיצה בלבד ולא על פני המחיצה. ההיסטים עבור מחיצה הם אינסופיים.
הערה:לא ניתן לשנות את הנתונים ברגע שנכתבו למחיצה. זה בלתי ניתן לשינוי. ערך ההיסט נשאר תמיד במצב אינקרמנטלי, הוא לעולם לא חוזר לחלל ריק. כמו כן, הנתונים נשמרים במחיצה לזמן מוגבל בלבד.
בואו נראה דוגמה להבנת נושא עם המחיצות שלו.
נניח, נושא המכיל שלוש מחיצות 0,1 ו-2. לכל מחיצה יש מספרי היסט שונים. הנתונים מחולקים בין כל היסט בכל מחיצה כאשר לנתונים בהיסט 1 של מחיצה 0 אין קשר לנתונים בהיסט 1 של מחיצה 1. אבל, נתונים בהיסט 1 של מחיצה 0 קשורים זה לזה עם הנתונים הכלולים בהיסט 2 של מחיצה0.
מתווכים
הנה, מגיע התפקיד של אפאצ'י קפקא.
אשכול קפקא מורכב משרת אחד או יותר הידועים כברוקרים או מתווכים של קפקא. ברוקר הוא מיכל שמכיל מספר נושאים עם המחיצות המרובות שלהם. הברוקרים באשכול מזוהים על ידי מזהה מספר שלם בלבד. מתווכים של קפקא ידועים גם בשם ברוקרים של Bootstrap כי חיבור עם כל מתווך אחד פירושו חיבור עם האשכול כולו. אמנם מתווך אינו מכיל נתונים שלמים, אבל כל ברוקר באשכול יודע על כל שאר המתווכים, מחיצות וגם נושאים.
כך נראה מתווך באיור המכיל נושא עם n מספר מחיצות.
דוגמה: ברוקרים ונושאים
נניח, אשכול קפקא המורכב משלושה מתווכים, כלומר ברוקר 1, ברוקר 2 ומתווך 3.
כל ברוקר מחזיק נושא, כלומר Topic-x עם שלוש מחיצות 0,1 ו-2. זכרו, כל המחיצות אינן שייכות למתווך אחד בלבד, היא תמיד מחולקת בין כל ברוקר (תלוי בכמות). ברוקר 1 ומתווך 2 מכילים נושא-y נוסף עם שתי מחיצות 0 ו-1. לפיכך, ברוקר 3 אינו מחזיק נתונים מ- Topic-y. כמו כן, המסקנה היא כי מעולם לא קיים קשר בין מספר המתווך למספר המחיצה.