מקורות לימוד ל Apache Kafka

S h a r k 1 8

New member
מקורות לימוד ל Apache Kafka

הי חברים,

ממש לאחרונה התחלתי ללמוד על קפקא. ראיתי שאמנם יש המון מידע באינטרנט על העקרונות של קפקא, אבל מצד שני לא קל למצוא דוגמאות קוד והסברים על איך לכתוב קוד שעושה פעולות מול קפקא. ממש במקרה גיליתי את Kafka Tool. רציתי לשאול על איזה אתרים/כלים/לינקים אתם ממליצים שיכולים לתת ידע ברמה טובה על איך לעבוד עם/מול שרת Kafka.

 

hookedatwalla

New member
למה דווקא קפקא ?

איפה אתה תקוע ?
https://cwiki.apache.org/confluence/display/KAFKA/Clients#Clients-.NET

אני מכיר QUEUES אחרים, ספציפית של אפצ'י זה ACTIVEMQ, בדרך כלל אחרי שאתה מריץ את היישום, שזה אמור לקחת לך כמה דקות, תכנס דרך הממשק הוובי, תראה שהכל מנגן, ותתחיל לדחוף ולקרוא מהQUEUE תוך שימוש בCLIENT שרשום שם ברשימה. תלוי בשפה שאתה בוחר. ולהאזין לקריאות בדרך שהם תומכים בCOMSUME, ממה שאני מכיר זה LISTENER שצריך לעשות SUBSCIBE ואז הדלגייט יופעל במקרה שהתקבלה הודעה.
 

MyVirtualSelf

New member
קפקא זה לא Queue

הוא לא מגיע עם Queue Semantics, לא out of the box.
כמו שהם כותבים, מדובר ב-pub/sub שבנוי כ-distributed commit log: אתה מקבל רצף הודעות שהוא Immutable, ואתה יכול לרוץ עליו עם מצביע.
אתה לא מקבל enqueue/dequeue, אתה לא מקבל תמיכה ב-posion message או dead-letters queue או retry machnics... או הרבה פיצ'רים אחרים של queueing systems כמו MSMQ, RabbitMQ, ActiveMQ ואחרים.
אתה יכול לממש את הפיצ'רים האלה בעצמך, אם אתה ממש רוצה לעבוד עם קפקא כתור.

קפקא נראה כמו פתרון מדהים להנחתת עומס של כמות עצומה של אירועים \ הודעות לשנייה. ה-pub/sub שלו מובנה כמובטח, אבל מוגבל ל-topic-based - נראה לי שנדרש מאמץ בשביל לממש מעליו content-based.
אם הצורך העיקרי הוא הנחתת העומס ו-topic based pub/sub - אז שווה מאוד לשים עליו עין כשבוחנים פתרונות. אם הצורך שונה - כדאי לבחון פתרונות נוספים ולא להינעל עליו בגלל ה-hype שמסביב.
 

hadooper

New member


בתור אחד שעבד עם קפקא בעבודה קודמת וכיום עובד רביט, אין שום דבר ייחודי בו שלא ניתן לעשות עם כל מערכת קיו אחרת. זה סתם באז שאיכשהו נדחף בכוח לאקוסיסטם ההאדופי בלי כל הצדקה או רציונל אמיתי.
 

ytoledano

New member
חלוקת עומסים בין consumers תוך שמירת סדר הודעות

זה use case שבחנו בשבילו Kafka. אם רוצים לשמור על סדר ההודעות בתוך partition וגם לחלק את העומס בין consumers וגם לתמוך בconsumers שמתווספים ונופלים - קשה מאוד לעשות את זה עם message queue כמו rabbit. היכולת לנגן מחדש חלק מההודעות היא גם שימושית, למרות שאני מעריך שלא קשה לממש אותה מעלmessage queue.
 
למעלה