کتاب Kafka The Definitive Guide نسخ دوم در سال 2021 به چاپ رسیده است. در این محصول علاوه بر ویرایش 1 این کتاب نسخه 2 نیز موجود میباشد. این کتاب در 14 فصل به آموزش مقدماتی تا بیان نکات مهم و پیشرفتهی این ابزار خواهد پرداخت.
Apache Kafka چیست و چه کاربردی دارد؟
از آپاچی کفکا برای امکان برقراری ارتباط بین تولیدکنندگان و مصرفکنندگان با استفاده از موضوعات پیام محور از Apache Kafka استفاده میکنیم. Apache Kafka یک سیستم پیام رسانی سریع، مقیاسپذیر، با قابلیت متحمل خطا، و امکان انتشار-اشتراک پیام سیستم است. اساساً، این چارچوب، بستری را برای برنامههای پیشرفته نسل جدید و توزیع شده طراحی کرده است و علاوه بر آن به تعداد زیادی از مصرفکنندگان دائمی یا موقت اجازه دسترسی و استفاده را میدهد.
یکی از بهترین ویژگیهای کفکا، در دسترس بودن و مقاوم در برابر خرابی گرهها در شبکه است. همچنین از بازیابی خودکار پشتیبانی میکند. این ویژگی Apache Kafka را برای برقراری ارتباط و ادغام بین اجزای سیستمهای دادهای در مقیاس بزرگ در سیستمهای داده دنیای واقعی ایدهآل میکند.
علاوه بر این، این فناوری جایگزین تبادل پیام متعارف در شبکه میشود و توان عملیاتی بالا، قابلیت اطمینان و تکثیر بیشتر مانند JMS ،AMQP و موارد دیگر را میدهد.
همچنین، مفهوم اصلی کفکا، شامل چندین بخش است:
- کارگزار کفکا
- تولید کننده کفکا
- مصرف کننده کفکا
کارگزار کفکا گرهای در خوشه کفکا است، استفاده از آن برای تداوم و تکثیر دادهها است.
یک تولید کننده در کفکا پیام را به درون محفظه پیام موسوم به “موضوع کفکا” سوق میدهد. در حالی که یک مصرفکننده کفکا پیام را از موضوع کفکا میکشد.
Apache Kafka چگونه کار میکند؟
کفکا به شما امکان میدهد تا پیامها را بین برنامهها در سیستمهای توزیعشده ارسال کنید. فرستنده میتواند پیامهایی را به کفکا ارسال کند، در حالی که گیرنده پیامهایی را از جریان منتشر شده توسط کفکا دریافت میکند.
پیامها به موضوعات گروهبندی میشوند – انتزاع اولیه کفکا. فرستنده (تهیهکننده) پیامهایی را برای موضوع خاص ارسال میکند. گیرنده (مصرفکننده) تمام پیامهای مربوط به یک موضوع خاص را از بسیاری از فرستندگان دریافت میکند. هر پیامی از یک موضوع خاص ارسال شده توسط هر فرستنده به هر گیرندهای که به آن موضوع گوش میدهد ارسال میشود.
Kafka به صورت خوشهای متشکل از یک یا چند سرور اجرا میشود که به هر یک از آنها کارگزار گفته میشود و ارتباط بین مشتری و سرورها با یک پروتکل ساده و دارای کارایی بالا به نام TCP انجام میشود.
منابع:
- https://bit.ly/2YPHxLP
- https://bit.ly/34KJMnx
مقدمهای بر کتاب Kafka The Definitive Guide نسخه دوم:
بزرگترین تعریفی که میتوانید به نویسنده یک کتاب فنی بدهید این است: «این کتابی است که آرزو میکردم وقتی با این موضوع شروع کردم، داشتم». این هدفی است که با شروع نوشتن این کتاب برای خود در نظر گرفتیم.
ما به تجربه خود در نوشتن کافکا، اجرای کافکا در تولید، و کمک به بسیاری از شرکتها برای استفاده از کافکا برای ساختن معماریهای نرمافزاری و مدیریت خطوط لوله دادههایشان نگاه کردیم و از خود پرسیدیم: «مفیدترین چیزهایی که میتوانیم با کاربران جدید به اشتراک بگذاریم چه هستند. آنها از مبتدی تا متخصص؟ کتاب Kafka The Definitive Guide بازتابی از کاری است که ما هر روز انجام میدهیم: آپاچی کافکا را اجرا کنید و به دیگران کمک کنید از آن به بهترین شکل استفاده کنند.
ما آنچه را که فکر میکنیم برای اجرای موفقیتآمیز آپاچی کافکا در تولید و ایجاد برنامههای کاربردی قوی و کارآمد در بالای آن باید بدانید را گنجاندهایم. موارد استفاده محبوب را برجسته کردیم: گذرگاههای پیام برای ریزسرویسهای رویداد محور، برنامههای پردازش جریان، و خطوط لوله داده در مقیاس بزرگ. ما همچنین بر این تمرکز کردیم که کتاب Kafka The Definitive Guide به اندازه کافی کلی و جامع باشد تا برای هر کسی که از کافکا استفاده میکند، صرف نظر از کاربرد یا معماری مفید باشد.
ما موارد عملی مانند نحوه نصب و پیکربندی کافکا و نحوه استفاده از APIهای کافکا را پوشش میدهیم و همچنین فضایی را به اصول طراحی و تضمینهای قابلیت اطمینان کافکا اختصاص میدهیم و چندین جزئیات معماری لذتبخش کافکا را بررسی میکنیم: پروتکل تکرار، کنترلکننده و لایهی ذخیرهسازی.
ما بر این باوریم که دانش طراحی و داخلی کافکا نه تنها برای کسانی که علاقهمند به سیستمهای توزیع شده هستند خواندنی سرگرمکننده است، بلکه برای کسانی که به دنبال تصمیمگیری آگاهانه در هنگام استفاده از کافکا در برنامههای تولید و طراحی هستند که از کافکا استفاده میکنند نیز بسیار مفید است. هر چه بهتر بدانید کافکا چگونه کار میکند، بیشتر می توانید تصمیمات آگاهانه ای در مورد مبادلات بسیاری که در مهندسی دخیل هستند، بگیرید.
یکی از مشکلات در مهندسی نرم افزار این است که همیشه بیش از یک راه برای انجام هر کاری وجود دارد. پلتفرمهایی مانند آپاچی کافکا انعطافپذیری زیادی را ارائه میکنند، که برای متخصصان عالی است اما برای مبتدیان منحنی یادگیری شیبداری را ایجاد میکند. اغلب، آپاچی کافکا به شما میگوید که چگونه از یک ویژگی استفاده کنید، اما نه اینکه چرا باید یا نباید از آن استفاده کنید. هر زمان که ممکن است، ما سعی میکنیم انتخابهای موجود، معاوضههای موجود، و زمانی که باید و نباید از گزینههای مختلف ارائهشده توسط آپاچی کافکا استفاده کنید، روشن کنیم.
چه کسی باید این کتاب را بخواند؟
کتاب Kafka The Definitive Guide برای مهندسین نرمافزاری که برنامههایی را توسعه میدهند که از APIهای کافکا استفاده میکنند، و برای مهندسان تولید (که SREs، DevOps یا sysadmin نیز نامیده میشوند) که نصب، پیکربندی، تنظیم و نظارت بر Kafka را در تولید نصب میکنند، نوشته شده است.
ما همچنین کتاب Kafka The Definitive Guide را با در نظر گرفتن معماران داده و مهندسان داده نوشتیم – کسانی که مسئول طراحی و ساخت زیرساخت داده کل یک سازمان هستند. برخی از فصلها، به ویژه فصلهای 3، 4 و 14، برای توسعهدهندگان جاوا طراحی شدهاند.
در این فصلها فرض بر این است که خواننده با مبانی زبان برنامه نویسی جاوا، از جمله موضوعاتی مانند رسیدگی به استثنا و همزمانی آشنا است. سایر فصلها، بهویژه فصلهای 2، 10، 12 و 13، فرض میکنند که خواننده تجربه اجرای لینوکس و آشنایی با ذخیرهسازی و پیکربندی شبکه در لینوکس را دارد. بقیه کتاب کافکا و معماری نرم افزار را به صورت کلی تر مورد بحث قرار میدهد و دانش خاصی را در نظر نمیگیرد.
دسته دیگری از افرادی که ممکن است کتاب Kafka The Definitive Guide را جالب بدانند، مدیران و معمارانی هستند که مستقیماً با کافکا کار نمیکنند، اما با افرادی که این کار را انجام میدهند کار میکنند. به همان اندازه مهم است که آنها ضمانتهایی را که کافکا ارائه میدهد و معاوضههایی که کارمندان و همکارانشان باید هنگام ساختن سیستمهای مبتنی بر کافکا انجام دهند، درک کنند. این کتاب میتواند مهمات را در اختیار مدیرانی قرار دهد که میخواهند کارکنان خود را در آپاچی کافکا آموزش ببینند یا اطمینان حاصل کنند که تیمهایشان چیزهایی را که باید بدانند میدانند.
پیشگفتار چاپ دوم کتاب Kafka The Definitive Guide
اولین نسخه کافکا: راهنمای قطعی پنج سال پیش منتشر شد. در آن زمان، ما تخمین زدیم که آپاچی کافکا در 30 درصد از شرکتهای Fortune 500 استفاده میشود. امروزه بیش از 70 درصد از شرکتهای Fortune 500 از آپاچی کافکا استفاده میکنند. هنوز هم یکی از محبوبترین پروژههای منبع باز در جهان است و در مرکز یک اکوسیستم عظیم قرار دارد.
چرا این همه هیجان؟ من فکر میکنم به این دلیل است که شکاف بزرگی در زیرساخت ما برای داده وجود دارد. به طور سنتی، مدیریت دادهها همه چیز در مورد ذخیرهسازی بود – ذخیره فایلها و پایگاههای دادهای که دادههای ما را ایمن نگه میدارند و به ما امکان میدهند بیت مناسب را در زمان مناسب جستجو کنیم.
حجم عظیمی از انرژی فکری و سرمایه گذاری تجاری در این سیستمها ریخته شده است. اما یک شرکت مدرن فقط یک نرم افزار با یک پایگاه داده نیست. یک شرکت مدرن یک سیستم فوقالعاده پیچیده است که از صدها یا حتی هزاران برنامه کاربردی سفارشی، میکروسرویس، پایگاههای داده، لایههای SaaS و پلتفرمهای تحلیلی ساخته شده است. و به طور فزایندهای، مشکلی که ما با آن روبرو هستیم این است که چگونه همه اینها را به یک شرکت متصل کنیم و همه آنها را با هم در زمان واقعی کار کنیم.
این مشکل مربوط به مدیریت دادهها در حالت استراحت نیست، بلکه مربوط به مدیریت دادهها در حال حرکت است. و درست در قلب آن جنبش، آپاچی کافکا است، که بالفعل به پایه و اساس هر پلتفرمی برای دادههای در حال حرکت تبدیل شده است.
در طول این سفر، کافکا ثابت نمانده است. چیزی که به عنوان یک لاگ commit برهنه آغاز شد نیز تکامل یافته است: افزودن اتصالات و قابلیتهای پردازش جریان، و اختراع مجدد معماری خود در طول مسیر.
جامعه نه تنها APIهای موجود، گزینههای پیکربندی، معیارها و ابزارها را برای بهبود قابلیت استفاده و قابلیت اطمینان کافکا توسعه داده است، بلکه یک API مدیریت برنامهای جدید، نسل بعدی تکرار جهانی و DR با MirrorMaker 2.0، Raft- جدید نیز معرفی کردهایم. پروتکل اجماع مبتنی بر اجرای کافکا در یک فایل اجرایی و کشش واقعی با پشتیبانی از ذخیرهسازی لایهای. شاید مهمتر از همه، ما با افزودن پشتیبانی از گزینههای امنیتی پیشرفته – احراز هویت، مجوز، و رمزگذاری، کافکا را در موارد استفاده سازمانی مهم تبدیل کردهایم.
همانطور که کافکا تکامل مییابد، ما شاهد تکامل موارد استفاده نیز هستیم. هنگامی که اولین نسخه منتشر شد، بیشتر نصبهای کافکا هنوز در مراکز داده سنتی اولیه و با استفاده از اسکریپتهای استقرار سنتی بودند. محبوب ترین موارد استفاده ETL و پیام رسانی بود.
موارد استفاده از پردازش جریانی هنوز در حال برداشتن اولین گامهای خود بودند. پنج سال بعد، اکثر نصبهای کافکا در فضای ابری هستند و بسیاری از آنها در Kubernetes اجرا میشوند. ETL و پیامرسانی هنوز هم محبوب هستند، اما میکروسرویسهای رویداد محور، پردازش جریان بیدرنگ، اینترنت اشیا، خطوط لوله یادگیری ماشین و صدها مورد و الگوی استفاده خاص صنعت که از پردازش خسارت در شرکتهای بیمه تا سیستمهای تجاری به آنها میپیوندند. در بانکها برای کمک به قدرت بازی در زمان واقعی و شخصیسازی در بازیهای ویدیویی و خدمات پخش.
حتی زمانی که کافکا به محیطهای جدید و موارد استفاده گسترش مییابد، نوشتن برنامههایی که از کافکا به خوبی استفاده میکنند و آن را با اطمینان در تولید به کار میبرند، مستلزم سازگاری با طرز تفکر منحصربهفرد کافکا است.
کتاب Kafka The Definitive Guide همه چیزهایی را که توسعهدهندگان و SREها برای استفاده کامل از کافکا نیاز دارند، از ابتداییترین APIها و پیکربندی گرفته تا جدیدترین و پیشرفتهترین قابلیتها، پوشش میدهد. این نه تنها کارهایی را که میتوانید با کافکا انجام دهید و نحوه انجام آن را پوشش میدهد، بلکه به کارهایی که نباید انجام دهید و ضد الگوهایی که باید اجتناب کنید نیز میپردازد. این کتاب میتواند راهنمای قابل اعتمادی برای دنیای کافکا هم برای کاربران جدید و هم برای پزشکان با تجربه باشد.
سرفصلهای کتاب Kafka The Definitive Guide:
- Foreword to the Second Edition
- Foreword to the First Edition
- Preface
- 1. Meet Kafka
- 2. Installing Kafka
- 3. Kafka Producers: Writing Messages to Kafka
- 4. Kafka Consumers: Reading Data from Kafka
- 5. Managing Apache Kafka Programmatically
- 6. Kafka Internals
- 7. Reliable Data Delivery
- 8. Exactly-Once Semantics
- 9. Building Data Pipelines
- 10. Cross-Cluster Data Mirroring
- 11. Securing Kafka
- 12. Administering Kafka
- 13. Monitoring Kafka
- 14. Stream Processing
- APPENDIX A Installing Kafka on Other Operating Systems
APPENDIX B Additional Kafka Tools - Index
جهت دانلود کتاب Kafka The Definitive Guide میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.